Control method for tintable windows

ABSTRACT

A method of controlling tint of a tintable window to account for occupant comfort in a room of a building. The tintable window is between the interior and exterior of the building. The method predicts a tint level for the tintable window at a future time based on lighting received through the tintable window into the room at the future time and space type in the room. The method also provides instructions over a network to transition tint of the tintable window to the tint level.

PRIORITY DATA

This patent document claims benefit of priority of U.S. ProvisionalPatent Application No. 62/434,826 titled CONTROL METHOD FOR TINTABLEWINDOWS, filed on Dec. 15, 2016, which is hereby incorporated byreference in its entirety and for all purposes.

This patent document is also a continuation-in-part of U.S. patentapplication Ser. No. 15/347,677 titled CONTROL METHOD FOR TINTABLEWINDOWS, filed on Nov. 9, 2016, which is a continuation-in-part ofInternational Patent Application No. PCT/US2015/029675 titled CONTROLMETHOD FOR TINTABLE WINDOWS, filed on May 7, 2015, which claims benefitof priority of U.S. Provisional Patent Application No. 61/991,375 titledCONTROL METHOD FOR TINTABLE WINDOWS, filed on May 9, 2014. U.S. patentapplication Ser. No. 15/347,677 is also a continuation-in-part of U.S.patent application Ser. No. 13/772,969 titled CONTROL METHOD FORTINTABLE WINDOWS, filed on Feb. 21, 2013.

This patent document is also a continuation-in-part of InternationalPatent Application No. PCT/US16/41344, titled “CONTROL METHOD FORTINTABLE WINDOWS,” filed on Jul. 7, 2016. This patent document is also acontinuation-in-part of International Patent Application No.PCT/US17/55631, titled “INFRARED CLOUD DETECTOR SYSTEMS AND METHODS,”filed on Oct. 6, 2016.

Each of U.S. Provisional Patent Application No. 62/434,826, U.S. patentapplication Ser. No. 15/347,677, International Patent Application No.PCT/US2015/029675, U.S. Provisional Patent Application No. 61/991,375,U.S. patent application Ser. No. 13/772,969, International PatentApplication No. PCT/US16/41344, and International Patent Application No.PCT/US17/55631 is hereby incorporated by reference in its entirety andfor all purposes.

FIELD

The embodiments disclosed herein relate generally to window controllersand related predictive control logic for implementing methods ofcontrolling tint and other functions of tintable windows (e.g.,electrochromic windows).

BACKGROUND

Electrochromism is a phenomenon in which a material exhibits areversible electrochemically-mediated change in an optical property whenplaced in a different electronic state, typically by being subjected toa voltage change. The optical property is typically one or more ofcolor, transmittance, absorbance, and reflectance. One well knownelectrochromic material is tungsten oxide (WO₃). Tungsten oxide is acathodic electrochromic material in which a coloration transition,transparent to blue, occurs by electrochemical reduction.

Electrochromic materials may be incorporated into, for example, windowsfor home, commercial and other uses. The color, transmittance,absorbance, and/or reflectance of such windows may be changed byinducing a change in the electrochromic material, that is,electrochromic windows are windows that can be darkened or lightenedelectronically. A small voltage applied to an electrochromic device ofthe window will cause them to darken; reversing the voltage causes themto lighten. This capability allows control of the amount of light thatpasses through the windows, and presents an opportunity forelectrochromic windows to be used as energy-saving devices.

While electrochromism was discovered in the 1960s, electrochromicdevices, and particularly electrochromic windows, still unfortunatelysuffer various problems and have not begun to realize their fullcommercial potential despite many recent advances in electrochromictechnology, apparatus and related methods of making and/or usingelectrochromic devices.

SUMMARY

Systems, methods, and apparatus for controlling transitions ofelectrochromic windows and other tintable windows to different tintlevels are provided. Generally, embodiments include predictive controllogic for implementing methods of controlling tint levels ofelectrochromic windows or other tintable windows. Typically, the controllogic can be used in a building or other architecture having one or moreelectrochromic windows located between the interior and exterior of thebuilding. The windows may have different configurations. For example,some may be vertical windows in offices or lobbies and others may beskylights in hallways. More particularly, disclosed embodiments includepredictive control logic that provides a method of predicting andchanging the tint level of one or more tintable windows to directlyaccount for occupant comfort. The method can determined the tint levelfor a future time, for example, to allow for the predicted transitiontime of the tintable windows.

The comfort has to do with reducing direct glare and/or total radiantenergy directed onto an occupant or the occupant's area of activity. Insome cases, the comfort also has to do with allowing sufficient naturallighting into the area. The control logic may also make use ofconsiderations for energy conservation. In a particular implementation,control logic may include one or more modules with at least one of themodules being associated with occupant comfort considerations. One ormore of the modules may be concerned with energy consumption as well.

In one aspect, one or more modules of the control logic may determine atint level that is determined based on occupant comfort from directsunlight or glare on the occupant or their activity area such as theirdesk. These modules may determine how far into the room the sunlightpenetrates at a particular instant in time. The modules may thendetermine an appropriate tint level that will transmit the level oflight that will be comfortable to the occupant.

In another aspect, one or more modules of the control logic may modifythe tint level determined based on occupant comfort to also take intoaccount energy considerations from predicted irradiance under clear skyconditions. In this aspect, the tint level may be darkened to make surethat it performs at least as well as a reference window required in thebuilding as specified by the local municipality codes or standards. Themodified tint level will provide at least as much energy savings incooling as the reference window. In some cases, the tint level may belightened instead to provide energy savings in heating.

In yet another aspect, one or more modules of the control logic maymodify the tint level determined based on occupant comfort and predictedclear sky irradiance to account for actual irradiance. The actualirradiance may be different than the predicted irradiance due toobstructions and reflection of light. A photosensor or other sensor thatcan measure radiation levels can be used to determine the actualirradiance. These one or more modules determine the lightest tint levelthat transmits as much or less light into the room than the tint leveldetermined based on occupant comfort and predicted clear sky irradiance.

One embodiment is a method of controlling tint of a tintable window toaccount for occupant comfort in a room of a building. The tintablewindow is located between the interior and exterior of the building. Themethod predicts an appropriate tint level for the tintable window at afuture time based on a penetration depth of direct sunlight through thetintable window into the room at the future time and space type in theroom. The method provides instructions over a network to transition tintof the tintable window to the tint level.

Another embodiment is a controller for controlling tint of a tintablewindow to account for occupant comfort in a room of a building. Thetintable window is located between the interior and exterior of thebuilding. The controller comprises a processor configured to determine atint level for the tintable window based on a penetration depth ofdirect sunlight through the tintable window into a room and space typein the room. The controller also comprises a pulse width modulator(“PWM”) in communication with the processor and with the tintable windowover a network. The pulse width modulator is configured to receive thetint level from the processor and send a signal with tint instructionsover the network to transition the tint of the tintable window to thedetermined tint level.

Another embodiment is a master controller for controlling tint of atintable window to account for occupant comfort in a building. Thetintable window is located between the interior and exterior of thebuilding. The master controller comprises a computer readable medium anda processor in communication with the computer readable medium and incommunication with a local window controller for the tintable window.The computer readable medium has a configuration file with a space typeassociated with the tintable window. The processor is configured toreceive the space type from the computer readable medium, determine atint level for the tintable window based on a penetration depth ofdirect sunlight through the tintable window into a room and the spacetype, and send tint instructions over a network to the local windowcontroller to transition tint of the tintable window to the determinedtint level.

Another embodiment is a method of controlling tint of one or moretintable windows in a zone of a building to account for occupantcomfort. The method calculates a future time based on a current time andbased on a predicted transition time of a representative window of thezone. The method also predicts a solar position at the future time anddetermines a program designated by a user in schedule. The programincludes logic for determining a tint level based on one or moreindependent variables. The method also employs the determined program todetermining the tint level based on the predicted solar position at thefuture time and occupant comfort. The method also communicatesinstructions to the one or more tintable windows to transition tint tothe determined tint level.

Another embodiment is a window controller for controlling tint of one ormore tintable windows in a zone of a building to account for occupantcomfort. The window controller comprises a computer readable mediumhaving predictive control logic, and site data and zone/group dataassociated with the zone. The window controller further comprises aprocessor in communication with the computer readable medium and incommunication with the tintable window. The processor is configured tocalculate a future time based on a current time and a predictedtransition time of a representative window of the zone. The processor isalso configured to predict a solar position at the future time anddetermine a program designated by a user in a schedule. The programincludes logic for determining a tint level based on one or moreindependent variables. The processor is also configured to employ thedetermined program to determine a tint level using the predicted solarposition at the future time and based on occupant comfort. The processoris also configured to communicate instructions to the one or moretintable windows in the zone to transition tint to the determined tintlevel.

Certain aspects include methods of controlling tint of one or moretintable windows to account for occupancy comfort in a room of abuilding. One method comprises determining an intersection between anoccupancy region and a three-dimensional projection of light through theone or more tintable windows; using the intersection to determine a tintlevel of the one or more tintable windows; and providing instructions totransition tint of the one or more tintable windows to the determinedtint level. In some cases, the three-dimensional projection is aprojection of the one or more tintable windows into the room from thesun's rays. The direction of the projection may be determined based onthe sun's azimuth and altitude in some cases. In some cases, theintersection of the three-dimensional projection of light with a planeof interest is a P-image and the tint level is determined based on anamount of overlap of the P-image with the occupancy region anddetermining the tint level based on the amount of overlap. In somecases, the tint level is determined based on a percentage of overlap ofthe P-image with the occupancy region.

Certain aspects include controllers for controlling tint of one or moretintable windows to account for occupancy comfort in a room. In somecases, a controller comprises a processor configured to determine anintersection of a three-dimensional projection of light through the oneor more tintable windows with a plane of interest, determine an overlapof the intersection with an occupancy region, use the determined overlapto determine a tint level of the one or more tintable windows, andprovide instructions to transition tint of the one or more tintablewindows to the determined tint level. In some aspects, the controllerfurther comprises a pulse width modulator in communication with theprocessor and with the tintable window over a network. The pulse widthmodulator is configured to receive the determined tint level from theprocessor and send a signal with tint instructions over the network totransition the tint of the one or more tintable windows to thedetermined tint level. In some aspects, the intersection of thethree-dimensional projection of light with a plane of interest is aP-image, wherein determining the P-image comprises determining aneffective aperture of the one or more tintable windows and a geometriccenter of the effective aperture, determining a P-image offset from thegeometric center based on sun azimuth and altitude, and determining theP-image by generating the effective aperture area around the P-imageoffset at the plane of interest.

Certain aspects include methods of controlling tint of one or moretintable windows to account for occupancy comfort in a room of abuilding. In some cases, the methods comprises determining whether oneor more timers is set at the current time; and if one or more timers isnot set, determining a filtered tint level and providing instructions totransition tint of the one or more tintable windows to the filtered tintlevel. In some cases, determining the filtered tint level comprisesdetermining a short box car value of a short box car based on one ormore sensor readings, determining a first long box car value of a firstlong box car based on one or more sensor readings, setting anillumination value to the short box car value and setting a first timerif the difference between the short box car value and the long box carvalue is positive and greater than a positive threshold value, andsetting the illumination value to the first long box car value if thedifference between the short box car value and the long box car value ispositive and less than the positive threshold value or negative and morenegative than a negative threshold value.

Certain aspects of the present disclosure pertain to a method forcontrolling tint states of tintable windows on a network to account foroccupant comfort in a room of a building. The method includes operationsof (a) operating the tintable windows using predictive control logic viathe network, where the predictive control logic provides tint states forcontrolling the tintable windows; (b) selecting adjusted tint states foran event, the event defined at least in part by constraints including arange of solar altitude values and/or a range of azimuth values, wherethe adjusted tint states differ at least in part from the tint statesprovided by the predictive control logic; (c) predicting that the eventwill occur at a future time based on whether the constraints will besatisfied; (d) providing instructions over the network to transition thetintable windows to the adjusted tint states at or before the futuretime of the predicted event; and (e) determining that the event hasended and providing instructions over the network to transition thetintable windows to the tint states provided by the predictive controllogic.

In some cases, selecting the adjusted tint states includes selectingincremental tint adjustments from the tint states provided by thepredictive control logic.

In some cases, the method may include estimating transition times forthe tintable windows to transition to the adjusted tint states. Theinstructions to transition the tintable windows to the adjusted tintstates may, in some cases, be provided over the network at times basedon the estimated transition times and the future time.

In some cases, the constraints further include on or more of thefollowing: date and/or time information, an estimated irradianceprovided by a clear sky model, a measured irradiance within the room,occupancy information associated with the room, a cloudiness index.

In some cases, the event corresponds to a shadow, a reflection, aseasonal change, and/or a user preference.

Another aspect of the present disclosure pertains to a method forcontrolling tint states of tintable windows to account for occupantcomfort in a room of a building. The method includes operations of (a)identifying an event defined at least in part by constraints thatinclude a range of solar altitude values and/or a range of azimuthvalues; (b) selecting tint states for the tintable windows responsive tothe identification of the event; (c) generating or updating a scheduleindicating when the constraints are satisfied; and (d) providing theschedule to control logic configured to communicate tinting instructionsto the tintable windows over a network.

In some cases, generating or updating the schedule is performed using asolar position calculator. In some cases, identifying a range of solaraltitude values and/or a range of azimuth values for the event includesproviding a time corresponding to an observed event to a solar positioncalculator.

In some cases, the method is performed on a computer or wireless device.For example, identifying the event may include identifying a reflectiveand/or shading surface of a three dimensional model of the buildingusing a computation device.

Another aspect of the present disclosure pertains to computer programproduct for controlling the tint of tintable windows on a network usingan event-based model, the computer program product includingcomputer-readable program code capable of being executed by processorswhen retrieved from a non-transitory computer-readable medium. Theprogram code includes instructions for (a) operating the tintablewindows using predictive control logic that provides tint states forcontrolling the tintable windows; (b) receiving constraints defining anevent, where the constraints include a range of solar altitude valuesand/or a range of azimuth values; (c) receiving adjusted tint states forthe event, where the adjusted tint states differ at least in part fromthe tint states provided by the predictive control logic; (d) predictingthat the event will occur at a future time based on whether theconstraints will be satisfied; (e) providing instructions over thenetwork to transition the tintable windows to the adjusted tint statesat or before the future time of the predicted event; and (f) determiningthat the event has ended and providing instructions over the network totransition the tintable windows to the tint states provided by thepredictive control logic.

In some embodiments, the program code further includes instructions forprocessing data indicating an occurrence of a date and time anddetermining solar altitude and/or azimuth values corresponding to thedate and time data using a solar calculator. The solar calculator may,in some cases, include a lookup table storing a plurality of timeentries, where each time entry is associated with solar altitude valuesand/or azimuth values.

In some embodiments, the constraints defining the event include weatherinformation, and the instructions are further configured to receivecurrent and/or predicted weather data. In some embodiments, theconstraints defining the event include an irradiance value, and theinstructions are further configured to receive a measured irradiancevalue.

Another aspect of the present disclosure pertains to a computer programproduct for controlling the tint of tintable windows on a network usingan event-based model, the computer program product includingcomputer-readable program code capable of being executed by processorswhen retrieved from a non-transitory computer-readable medium. Theprogram code includes instructions for (a) receiving constraintsdefining an event, the constraints including a range of solar altitudevalues and/or a range of azimuth values; (b) receiving tint states to beapplied to the tintable windows during the event; (c) generating orupdating a schedule indicating when the constraints are satisfied; and(d) providing the schedule to control logic configured to communicatetinting instructions to the tintable windows over a network.

Another aspect of the present disclosure pertains to a controller forcontrolling tint of tintable windows on a network to account foroccupant comfort. The controller includes a computer readable mediumhaving predictive control logic a processor in communication with thecomputer readable medium and in communication with the tintable window.The processor is configured to (a) operate the tintable windows usingpredictive control logic to provide tint states for controlling thetintable windows; (b) receive constraints defining an event, where theconstraints include a range of solar altitude values and/or a range ofazimuth values; (c) receive adjusted tint states for the event, wherethe adjusted tint states differ at least in part from the tint statesprovided by the predictive control logic; (d) predict that the eventwill occur at a future time based on whether the constraints will besatisfied; (e) provide instructions over the network to transition thetintable windows to the adjusted tint states at or before the futuretime of the predicted event; and (f) determine that the event has endedand provide instructions over the network to transition the tintablewindows to the tint states provided by the predictive control logic.

Another aspect of the present disclosure pertains to a method ofcontrolling at least one window, including (a) determining a position ofthe sun: (b) receiving an indication of cloud cover from at least onesensor; and (c) controlling the least one window based on (a) and (b).

In some cases, the indication received in (b) is provided by a weatherstation.

In some cases, the step of determining the position of the sun includesdetermining that an obstruction will cause a reduction from a maximumamount of irradiance received at the sensor(s), where the sensor(s)include a photosensor configured to measure solar irradiance. The stepof controlling may be performed, in some cases, while the obstructioncauses a reduction from a maximum amount of irradiance at the at leastone sensor.

In some case, the step of controlling includes increasing a tint levelof the at least one window or decreasing a tint level of the at leastone window. In some cases, the step of controlling includes controlling,with a control device, a position of a window shade, a window drapery,or a window blind.

In some cases, the at least one sensor for indicating cloud coverincludes a light sensor, for example, a visible light sensor and/or aninfrared sensor; a temperature sensor; and/or a humidity sensor.

Another aspect of the present disclosure pertains to a cloud detectorsystem, that includes (a) a sun position detection module; (b)detector(s) configured to generate a reading indicative of cloud cover;(c) at least one window; and (d) at least one controller that isconfigured to control the window(s) based on a sun position detected bythe sun position detection module and the reading indicative of cloudcover generated by the detector(s).

These and other features and embodiments will be described in moredetail below with reference to the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1C show schematic diagrams of electrochromic devices formed onglass substrates, i.e., electrochromic lites.

FIGS. 2A and 2B show cross-sectional schematic diagrams of theelectrochromic lites as described in relation to FIGS. 1A-1C integratedinto an IGU.

FIG. 3A depicts a schematic cross-section of an electrochromic device.

FIG. 3B depicts a schematic cross-section of an electrochromic device ina bleached state (or transitioning to a bleached state).

FIG. 3C depicts a schematic cross-section of the electrochromic deviceshown in FIG. 3B, but in a colored state (or transitioning to a coloredstate).

FIG. 4 depicts a simplified block diagram of components of a windowcontroller.

FIG. 5 depicts a schematic diagram of a room including a tintable windowand at least one sensor, according to disclosed embodiments.

FIGS. 6A-6C include diagrams depicting information collected by each ofthree Modules A, B, and C of an exemplary control logic, according todisclosed embodiments.

FIG. 7 is a flowchart showing some steps of predictive control logic fora method of controlling one or more electrochromic windows in abuilding, according to disclosed embodiments.

FIG. 8 is a flowchart showing a particular implementation of a portionof the control logic shown in FIG. 7 .

FIG. 9 is a flowchart showing details of Module A according to disclosedembodiments.

FIG. 10 is an example of an occupancy lookup table according todisclosed embodiments.

FIG. 11A depicts a schematic diagram of a room including anelectrochromic window with a space type based on a Desk 1 located nearthe window, according to disclosed embodiments.

FIG. 11B depicts a schematic diagram of a room including anelectrochromic window with a space type based on a Desk 2 locatedfurther away from the window than in FIG. 11A, according to disclosedembodiments.

FIG. 12 is a flowchart showing details of Module B according todisclosed embodiments.

FIG. 13 is a flowchart showing details of Module C according todisclosed embodiments.

FIG. 14 is a diagram showing another implementation of a portion of thecontrol logic shown in FIG. 7 .

FIG. 15 depicts a schematic diagram of an embodiment of a buildingmanagement system.

FIG. 16 depicts a block diagram of an embodiment of a building network.

FIG. 17 is a block diagram of components of a system for controllingfunctions of one or more tintable windows of a building.

FIG. 18 is a block diagram depicting predictive control logic for amethod of controlling the transitioning of tint levels of one or moretintable windows (e.g., electrochromic windows) in a building.

FIG. 19 is screenshot of a user interface used to enter scheduleinformation to generate a schedule employed by a window controller,according to embodiments.

FIG. 20 is an example of an occupancy lookup table and a schematicdiagram of a room with a desk and window showing the relationshipbetween acceptance angle, sun angle, and penetration depth, according toembodiments.

FIGS. 21A, 21B, and 21C are schematic drawings of the plan view of aportion of building having three different space types, according to anembodiment.

FIG. 22 is a block diagram of subsystems that may be present in windowcontrollers used to control the tint level or more tintable windows,according to embodiments.

FIG. 23 is a graph of sensor illumination readings taken on a day thatbegins with fog that rapidly burns off to sunshine later in the day.

FIG. 24A is a flowchart showing a particular implementation of a portionof the control logic shown in FIG. 7 .

FIG. 24B is a graph of illumination readings during a day that is cloudyearly in the day and then sunny later in the day and the correspondingupper and lower limits.

FIG. 25A is a flowchart of a control method that uses box car values tomake tinting decisions, according to embodiments.

FIG. 25B depicts a room having a desk and the critical angle of the roomwithin which the sun is shining onto an occupant sitting at the desk

FIG. 26A depicts two graphs associated with sensor readings during aregular day and the associated determined tint states determined of acontrol method using box car filters, according to embodiments.

FIG. 26B depicts two graphs associated with sensor readings during acloud day with intermittent spikes and the associated determined tintstates determined of a control method using box car filters, accordingto embodiments.

FIG. 27A is a plot of illumination values including sensor readings,short box car values, and long box car values determined during time, t,during a day.

FIG. 27B is a plot of the sensor readings of FIG. 27A and associatedtint level determined by Module B, and tint level determined by Module Cduring a day.

FIG. 28A is a flowchart of a control method that uses box car values tomake tinting decisions, according to embodiments.

FIG. 28B is a plot of illumination values including sensor readings,short box car values, and long box car values determined during time, t,during a day.

FIG. 29A is a flowchart of a control method that uses box car values tomake tinting decisions, according to embodiments.

FIG. 29B is a plot of illumination values including sensor readings,short box car values, and long box car values determined during time, t,during a day.

FIG. 30 is a schematic drawing of a side view of a room with ahorizontal circular aperture in the form of a skylight to illustrate athree-dimensional projection of light through the room to the floor,according to embodiments.

FIG. 31 is a schematic drawing of a side view and a top view of the roomof FIG. 30 with projection to a desk in the room, according to anembodiment.

FIG. 32 is a schematic drawing of a side view and a top view of a roomwith the single horizontal circular aperture in the form of a skylight,according to an embodiment.

FIG. 33 is a schematic drawing of a side view of a room with amulti-faceted skylight comprising a first aperture and a secondaperture, according to an embodiment.

FIG. 34 illustrates a schematic drawing of a side view of a room with amulti-faceted skylight comprising a first aperture and a secondaperture, and with a desk, according to an embodiment.

FIG. 35 is a schematic drawing of a side view of a room with amulti-faceted skylight comprising a facet that blocks light, accordingto an embodiment.

FIG. 36 is a schematic drawing depicting a method that provides an endtint state that corresponds to the relative portion of the occupancyregion covered by the glare area, according to an embodiment.

FIG. 37 is a flowchart with details of step 700 of FIG. 8 correspondingto an embodiments of Module A that use a three dimensional lightprojection.

FIG. 38 is a schematic drawing of a side view of a room with severalmulti-faceted skylights and a projection, according to embodiments.

FIGS. 39A-B depicts how solar altitude and azimuth ranges may bedetermined for an event causing glare in a building.

FIG. 40 depicts a graphical user interface of a software applicationwhich may automatically identify solar altitude and azimuth rangescorresponding to an event.

FIG. 41 is a table representing a time based schedule providing sunazimuth and altitude constraints for determining whether an event hasoccurred to cause a tint level to be applied to a window, according tosome embodiments.

FIG. 42 is a flowchart showing details of Module B′ according to someembodiments.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of the presented embodiments.The disclosed embodiments may be practiced without some or all of thesespecific details. In other instances, well-known process operations havenot been described in detail to not unnecessarily obscure the disclosedembodiments. While the disclosed embodiments will be described inconjunction with the specific embodiments, it will be understood that itis not intended to limit the disclosed embodiments.

I. Overview of Electrochromic Devices

It should be understood that while disclosed embodiments focus onelectrochromic windows (also referred to as smart windows), the conceptsdisclosed herein may apply to other types of tintable windows. Forexample, a tintable window incorporating a liquid crystal device or asuspended particle device, instead of an electrochromic device could beincorporated in any of the disclosed embodiments.

In order to orient the reader to the embodiments of systems, windowcontrollers, and methods disclosed herein, a brief discussion ofelectrochromic devices is provided. This initial discussion ofelectrochromic devices is provided for context only, and thesubsequently described embodiments of systems, window controllers, andmethods are not limited to the specific features and fabricationprocesses of this initial discussion.

A particular example of an electrochromic lite is described withreference to FIGS. 1A-1C, in order to illustrate embodiments describedherein. FIG. 1A is a cross-sectional representation (see section cutX′-X′ of FIG. 1C) of an electrochromic lite 100, which is fabricatedstarting with a glass sheet 105. FIG. 1B shows an end view (see viewingperspective Y-Y′ of FIG. 1C) of electrochromic lite 100, and FIG. 1Cshows a top-down view of electrochromic lite 100. FIG. 1A shows theelectrochromic lite after fabrication on glass sheet 105, edge deletedto produce area 140, around the perimeter of the lite. Theelectrochromic lite has also been laser scribed and bus bars have beenattached. The glass lite 105 has a diffusion barrier 110, and a firsttransparent conducting oxide layer (TCO) 115, on the diffusion barrier.In this example, the edge deletion process removes both TCO 115 anddiffusion barrier 110, but in other embodiments only the TCO is removed,leaving the diffusion barrier intact. The TCO 115 is the first of twoconductive layers used to form the electrodes of the electrochromicdevice fabricated on the glass sheet. In this example, the glass sheetincludes underlying glass and the diffusion barrier layer. Thus, in thisexample, the diffusion barrier is formed, and then the first TCO, anelectrochromic stack 125, (e.g., having electrochromic, ion conductor,and counter electrode layers), and a second TCO 130, are formed. In oneembodiment, the electrochromic device (electrochromic stack and secondTCO) is fabricated in an integrated deposition system where the glasssheet does not leave the integrated deposition system at any time duringfabrication of the stack. In one embodiment, the first TCO layer is alsoformed using the integrated deposition system where the glass sheet doesnot leave the integrated deposition system during deposition of theelectrochromic stack and the (second) TCO layer. In one embodiment, allof the layers (diffusion barrier, first TCO, electrochromic stack, andsecond TCO) are deposited in the integrated deposition system where theglass sheet does not leave the integrated deposition system duringdeposition. In this example, prior to deposition of electrochromic stack125, an isolation trench 120, is cut through TCO 115 and diffusionbarrier 110. Trench 120 is made in contemplation of electricallyisolating an area of TCO 115 that will reside under bus bar 1 afterfabrication is complete (see FIG. 1A). This is done to avoid chargebuildup and coloration of the electrochromic device under the bus bar,which can be undesirable.

After formation of the electrochromic device, edge deletion processesand additional laser scribing are performed. FIG. 1A depicts areas 140where the device has been removed, in this example, from a perimeterregion surrounding laser scribe trenches 150, 155, 160, and 165.Trenches 150, 160 and 165 pass through the electrochromic stack and alsothrough the first TCO and diffusion barrier. Trench 155 passes throughsecond TCO 130 and the electrochromic stack, but not the first TCO 115.Laser scribe trenches 150, 155, 160, and 165 are made to isolateportions of the electrochromic device, 135, 145, 170, and 175, whichwere potentially damaged during edge deletion processes from theoperable electrochromic device. In this example, laser scribe trenches150, 160, and 165 pass through the first TCO to aid in isolation of thedevice (laser scribe trench 155 does not pass through the first TCO,otherwise it would cut off bus bar 2's electrical communication with thefirst TCO and thus the electrochromic stack). The laser or lasers usedfor the laser scribe processes are typically, but not necessarily,pulse-type lasers, for example, diode-pumped solid state lasers. Forexample, the laser scribe processes can be performed using a suitablelaser from IPG Photonics (of Oxford, Mass.), or from Ekspla (of Vilnius,Lithuania). Scribing can also be performed mechanically, for example, bya diamond tipped scribe. One of ordinary skill in the art wouldappreciate that the laser scribing processes can be performed atdifferent depths and/or performed in a single process whereby the lasercutting depth is varied, or not, during a continuous path around theperimeter of the electrochromic device. In one embodiment, the edgedeletion is performed to the depth of the first TCO.

After laser scribing is complete, bus bars are attached. Non-penetratingbus bar 1 is applied to the second TCO. Non-penetrating bus bar 2 isapplied to an area where the device was not deposited (e.g., from a maskprotecting the first TCO from device deposition), in contact with thefirst TCO or, in this example, where an edge deletion process (e.g.,laser ablation using an apparatus having a XY or XYZ galvanometer) wasused to remove material down to the first TCO. In this example, both busbar 1 and bus bar 2 are non-penetrating bus bars. A penetrating bus baris one that is typically pressed into and through the electrochromicstack to make contact with the TCO at the bottom of the stack. Anon-penetrating bus bar is one that does not penetrate into theelectrochromic stack layers, but rather makes electrical and physicalcontact on the surface of a conductive layer, for example, a TCO.

The TCO layers can be electrically connected using a non-traditional busbar, for example, a bus bar fabricated with screen and lithographypatterning methods. In one embodiment, electrical communication isestablished with the device's transparent conducting layers via silkscreening (or using another patterning method) a conductive ink followedby heat curing or sintering the ink. Advantages to using the abovedescribed device configuration include simpler manufacturing, forexample, and less laser scribing than conventional techniques which usepenetrating bus bars.

After the bus bars are connected, the device is integrated into aninsulated glass unit (IGU), which includes, for example, wiring the busbars and the like. In some embodiments, one or both of the bus bars areinside the finished IGU, however in one embodiment one bus bar isoutside the seal of the IGU and one bus bar is inside the IGU. In theformer embodiment, area 140 is used to make the seal with one face ofthe spacer used to form the IGU. Thus, the wires or other connection tothe bus bars runs between the spacer and the glass. As many spacers aremade of metal, e.g., stainless steel, which is conductive, it isdesirable to take steps to avoid short circuiting due to electricalcommunication between the bus bar and connector thereto and the metalspacer.

As described above, after the bus bars are connected, the electrochromiclite is integrated into an IGU, which includes, for example, wiring forthe bus bars and the like. In the embodiments described herein, both ofthe bus bars are inside the primary seal of the finished IGU.

FIG. 2A shows a cross-sectional schematic diagram of the electrochromicwindow as described in relation to FIGS. 1A-1C integrated into an IGU200. A spacer 205 is used to separate the electrochromic lite from asecond lite 210. Second lite 210 in IGU 200 is a non-electrochromiclite, however, the embodiments disclosed herein are not so limited. Forexample, lite 210 can have an electrochromic device thereon and/or oneor more coatings such as low-E coatings and the like. Lite 201 can alsobe laminated glass, such as depicted in FIG. 2B (lite 201 is laminatedto reinforcing pane 230, via resin 235). Between spacer 205 and thefirst TCO layer of the electrochromic lite is a primary seal material215. This primary seal material is also between spacer 205 and secondglass lite 210. Around the perimeter of spacer 205 is a secondary seal220. Bus bar wiring/leads traverse the seals for connection to acontroller. Secondary seal 220 may be much thicker that depicted. Theseseals aid in keeping moisture out of an interior space 225, of the IGU.They also serve to prevent argon or other gas in the interior of the IGUfrom escaping.

FIG. 3A schematically depicts an electrochromic device 300, incross-section. Electrochromic device 300 includes a substrate 302, afirst conductive layer (CL) 304, an electrochromic layer (EC) 306, anion conducting layer (IC) 308, a counter electrode layer (CE) 310, and asecond conductive layer (CL) 314. Layers 304, 306, 308, 310, and 314 arecollectively referred to as an electrochromic stack 320. A voltagesource 316 operable to apply an electric potential across electrochromicstack 320 effects the transition of the electrochromic device from, forexample, a bleached state to a colored state (depicted). The order oflayers can be reversed with respect to the substrate.

Electrochromic devices having distinct layers as described can befabricated as all solid state devices and/or all inorganic deviceshaving low defectivity. Such devices and methods of fabricating them aredescribed in more detail in U.S. patent application Ser. No. 12/645,111,entitled “Fabrication of Low-Defectivity Electrochromic Devices,” filedon Dec. 22, 2009, and naming Mark Kozlowski et al. as inventors, and inU.S. patent application Ser. No. 12/645,159, entitled, “ElectrochromicDevices,” filed on Dec. 22, 2009 and naming Zhongchun Wang et al. asinventors, both of which are hereby incorporated by reference in theirentireties. It should be understood, however, that any one or more ofthe layers in the stack may contain some amount of organic material. Thesame can be said for liquids that may be present in one or more layersin small amounts. It should also be understood that solid state materialmay be deposited or otherwise formed by processes employing liquidcomponents such as certain processes employing sol-gels or chemicalvapor deposition.

Additionally, it should be understood that the reference to a transitionbetween a bleached state and colored state is non-limiting and suggestsonly one example, among many, of an electrochromic transition that maybe implemented. Unless otherwise specified herein (including theforegoing discussion), whenever reference is made to a bleached-coloredtransition, the corresponding device or process encompasses otheroptical state transitions such as non-reflective-reflective,transparent-opaque, etc. Further, the term “bleached” refers to anoptically neutral state, for example, uncolored, transparent, ortranslucent. Still further, unless specified otherwise herein, the“color” of an electrochromic transition is not limited to any particularwavelength or range of wavelengths. As understood by those of skill inthe art, the choice of appropriate electrochromic and counter electrodematerials governs the relevant optical transition.

In embodiments described herein, the electrochromic device reversiblycycles between a bleached state and a colored state. In some cases, whenthe device is in a bleached state, a potential is applied to theelectrochromic stack 320 such that available ions in the stack resideprimarily in the counter electrode 310. When the potential on theelectrochromic stack is reversed, the ions are transported across theion conducting layer 308 to the electrochromic material 306 and causethe material to transition to the colored state. In a similar way, theelectrochromic device of embodiments described herein can be reversiblycycled between different tint levels (e.g., bleached state, darkestcolored state, and intermediate levels between the bleached state andthe darkest colored state).

Referring again to FIG. 3A, voltage source 316 may be configured tooperate in conjunction with radiant and other environmental sensors. Asdescribed herein, voltage source 316 interfaces with a device controller(not shown in this figure). Additionally, voltage source 316 mayinterface with an energy management system that controls theelectrochromic device according to various criteria such as the time ofyear, time of day, and measured environmental conditions. Such an energymanagement system, in conjunction with large area electrochromic devices(e.g., an electrochromic window), can dramatically lower the energyconsumption of a building.

Any material having suitable optical, electrical, thermal, andmechanical properties may be used as substrate 302. Such substratesinclude, for example, glass, plastic, and mirror materials. Suitableglasses include either clear or tinted soda lime glass, including sodalime float glass. The glass may be tempered or untempered.

In many cases, the substrate is a glass pane sized for residentialwindow applications. The size of such glass pane can vary widelydepending on the specific needs of the residence. In other cases, thesubstrate is architectural glass. Architectural glass is typically usedin commercial buildings, but may also be used in residential buildings,and typically, though not necessarily, separates an indoor environmentfrom an outdoor environment. In certain embodiments, architectural glassis at least 20 inches by 20 inches, and can be much larger, for example,as large as about 80 inches by 120 inches. Architectural glass istypically at least about 2 mm thick, typically between about 3 mm andabout 6 mm thick. Of course, electrochromic devices are scalable tosubstrates smaller or larger than architectural glass. Further, theelectrochromic device may be provided on a mirror of any size and shape.

On top of substrate 302 is conductive layer 304. In certain embodiments,one or both of the conductive layers 304 and 314 is inorganic and/orsolid. Conductive layers 304 and 314 may be made from a number ofdifferent materials, including conductive oxides, thin metalliccoatings, conductive metal nitrides, and composite conductors.Typically, conductive layers 304 and 314 are transparent at least in therange of wavelengths where electrochromism is exhibited by theelectrochromic layer. Transparent conductive oxides include metal oxidesand metal oxides doped with one or more metals. Examples of such metaloxides and doped metal oxides include indium oxide, indium tin oxide,doped indium oxide, tin oxide, doped tin oxide, zinc oxide, aluminumzinc oxide, doped zinc oxide, ruthenium oxide, doped ruthenium oxide andthe like. Since oxides are often used for these layers, they aresometimes referred to as “transparent conductive oxide” (TCO) layers.Thin metallic coatings that are substantially transparent may also beused, as well as combinations of TCO's and metallic coatings.

The function of the conductive layers is to spread an electric potentialprovided by voltage source 316 over surfaces of the electrochromic stack320 to interior regions of the stack, with relatively little ohmicpotential drop. The electric potential is transferred to the conductivelayers though electrical connections to the conductive layers. In someembodiments, bus bars, one in contact with conductive layer 304 and onein contact with conductive layer 314, provide the electric connectionbetween the voltage source 316 and the conductive layers 304 and 314.The conductive layers 304 and 314 may also be connected to the voltagesource 316 with other conventional means.

Overlaying conductive layer 304 is electrochromic layer 306. In someembodiments, electrochromic layer 306 is inorganic and/or solid. Theelectrochromic layer may contain any one or more of a number ofdifferent electrochromic materials, including metal oxides. Such metaloxides include tungsten oxide (WO3), molybdenum oxide (MoO3), niobiumoxide (Nb2O5), titanium oxide (TiO2), copper oxide (CuO), iridium oxide(Ir2O3), chromium oxide (Cr2O3), manganese oxide (Mn2O3), vanadium oxide(V2O5), nickel oxide (Ni2O3), cobalt oxide (Co2O3) and the like. Duringoperation, electrochromic layer 306 transfers ions to and receives ionsfrom counter electrode layer 310 to cause optical transitions.

Generally, the colorization (or change in any optical property—e.g.,absorbance, reflectance, and transmittance) of the electrochromicmaterial is caused by reversible ion insertion into the material (e.g.,intercalation) and a corresponding injection of a charge balancingelectron. Typically some fraction of the ions responsible for theoptical transition is irreversibly bound up in the electrochromicmaterial. Some or all of the irreversibly bound ions are used tocompensate “blind charge” in the material. In most electrochromicmaterials, suitable ions include lithium ions (Li+) and hydrogen ions(H+) (that is, protons). In some cases, however, other ions will besuitable. In various embodiments, lithium ions are used to produce theelectrochromic phenomena. Intercalation of lithium ions into tungstenoxide (WO3−y (0<y≤˜0.3)) causes the tungsten oxide to change fromtransparent (bleached state) to blue (colored state).

Referring again to FIG. 3A, in electrochromic stack 320, ion conductinglayer 308 is sandwiched between electrochromic layer 306 and counterelectrode layer 310. In some embodiments, counter electrode layer 310 isinorganic and/or solid. The counter electrode layer may comprise one ormore of a number of different materials that serve as a reservoir ofions when the electrochromic device is in the bleached state. During anelectrochromic transition initiated by, for example, application of anappropriate electric potential, the counter electrode layer transferssome or all of the ions it holds to the electrochromic layer, changingthe electrochromic layer to the colored state. Concurrently, in the caseof NiWO, the counter electrode layer colors with the loss of ions.

In some embodiments, suitable materials for the counter electrodecomplementary to WO3 include nickel oxide (NiO), nickel tungsten oxide(NiWO), nickel vanadium oxide, nickel chromium oxide, nickel aluminumoxide, nickel manganese oxide, nickel magnesium oxide, chromium oxide(Cr2O3), manganese oxide (MnO2), and Prussian blue.

When charge is removed from a counter electrode 310 made of nickeltungsten oxide (that is, ions are transported from counter electrode 310to electrochromic layer 306), the counter electrode layer willtransition from a transparent state to a colored state.

In the depicted electrochromic device, between electrochromic layer 306and counter electrode layer 310, there is the ion conducting layer 308.Ion conducting layer 308 serves as a medium through which ions aretransported (in the manner of an electrolyte) when the electrochromicdevice transitions between the bleached state and the colored state.Preferably, ion conducting layer 308 is highly conductive to therelevant ions for the electrochromic and the counter electrode layers,but has sufficiently low electron conductivity that negligible electrontransfer takes place during normal operation. A thin ion conductinglayer with high ionic conductivity permits fast ion conduction and hencefast switching for high performance electrochromic devices. In certainembodiments, the ion conducting layer 308 is inorganic and/or solid.

Examples of suitable ion conducting layers (for electrochromic deviceshaving a distinct IC layer) include silicates, silicon oxides, tungstenoxides, tantalum oxides, niobium oxides, and borates. These materialsmay be doped with different dopants, including lithium. Lithium dopedsilicon oxides include lithium silicon-aluminum-oxide. In someembodiments, the ion conducting layer comprises a silicate-basedstructure. In some embodiments, a silicon-aluminum-oxide (SiAlO) is usedfor the ion conducting layer 308.

Electrochromic device 300 may include one or more additional layers (notshown), such as one or more passive layers. Passive layers used toimprove certain optical properties may be included in electrochromicdevice 300. Passive layers for providing moisture or scratch resistancemay also be included in electrochromic device 300. For example, theconductive layers may be treated with anti-reflective or protectiveoxide or nitride layers. Other passive layers may serve to hermeticallyseal electrochromic device 300.

FIG. 3B is a schematic cross-section of an electrochromic device in ableached state (or transitioning to a bleached state). In accordancewith specific embodiments, an electrochromic device 400 includes atungsten oxide electrochromic layer (EC) 406 and a nickel-tungsten oxidecounter electrode layer (CE) 410. Electrochromic device 400 alsoincludes a substrate 402, a conductive layer (CL) 404, an ion conductinglayer (IC) 408, and conductive layer (CL) 414.

A power source 416 is configured to apply a potential and/or current toan electrochromic stack 420 through suitable connections (e.g., busbars) to the conductive layers 404 and 414. In some embodiments, thevoltage source is configured to apply a potential of a few volts inorder to drive a transition of the device from one optical state toanother. The polarity of the potential as shown in FIG. 3A is such thatthe ions (lithium ions in this example) primarily reside (as indicatedby the dashed arrow) in nickel-tungsten oxide counter electrode layer410

FIG. 3C is a schematic cross-section of electrochromic device 400 shownin FIG. 3B but in a colored state (or transitioning to a colored state).In FIG. 3C, the polarity of voltage source 416 is reversed, so that theelectrochromic layer is made more negative to accept additional lithiumions, and thereby transition to the colored state. As indicated by thedashed arrow, lithium ions are transported across ion conducting layer408 to tungsten oxide electrochromic layer 406. Tungsten oxideelectrochromic layer 406 is shown in the colored state. Nickel-tungstenoxide counter electrode 410 is also shown in the colored state. Asexplained, nickel-tungsten oxide becomes progressively more opaque as itgives up (deintercalates) lithium ions. In this example, there is asynergistic effect where the transition to colored states for bothlayers 406 and 410 are additive toward reducing the amount of lighttransmitted through the stack and substrate.

As described above, an electrochromic device may include anelectrochromic (EC) electrode layer and a counter electrode (CE) layerseparated by an ionically conductive (IC) layer that is highlyconductive to ions and highly resistive to electrons. As conventionallyunderstood, the ionically conductive layer therefore prevents shortingbetween the electrochromic layer and the counter electrode layer. Theionically conductive layer allows the electrochromic and counterelectrodes to hold a charge and thereby maintain their bleached orcolored states. In electrochromic devices having distinct layers, thecomponents form a stack which includes the ion conducting layersandwiched between the electrochromic electrode layer and the counterelectrode layer. The boundaries between these three stack components aredefined by abrupt changes in composition and/or microstructure. Thus,the devices have three distinct layers with two abrupt interfaces.

In accordance with certain embodiments, the counter electrode andelectrochromic electrodes are formed immediately adjacent one another,sometimes in direct contact, without separately depositing an ionicallyconducting layer. In some embodiments, electrochromic devices having aninterfacial region rather than a distinct IC layer are employed. Suchdevices, and methods of fabricating them, are described in U.S. Pat. No.8,300,298 and U.S. patent application Ser. No. 12/772,075 filed on Apr.30, 2010, and U.S. patent application Ser. Nos. 12/814,277 and12/814,279, filed on Jun. 11, 2010—each of the three patent applicationsand patent is entitled “Electrochromic Devices,” each names ZhongchunWang et al. as inventors, and each is incorporated by reference hereinin its entirety.

II. Window Controllers

A window controller is used to control the tint level of theelectrochromic device of an electrochromic window. In some embodiments,the window controller is able to transition the electrochromic windowbetween two tint states (levels), a bleached state and a colored state.In other embodiments, the controller can additionally transition theelectrochromic window (e.g., having a single electrochromic device) tointermediate tint levels. In some disclosed embodiments, the windowcontroller is able to transition the electrochromic window to four ormore tint levels. Certain electrochromic windows allow intermediate tintlevels by using two (or more) electrochromic lites in a single IGU,where each lite is a two-state lite. This is described in reference toFIGS. 2A and 2B in this section.

As noted above with respect to FIGS. 2A and 2B, in some embodiments, anelectrochromic window can include an electrochromic device 400 on onelite of an IGU 200 and another electrochromic device 400 on the otherlite of the IGU 200. If the window controller is able to transition eachelectrochromic device between two states, a bleached state and a coloredstate, the electrochromic window is able to attain four different states(tint levels), a colored state with both electrochromic devices beingcolored, a first intermediate state with one electrochromic device beingcolored, a second intermediate state with the other electrochromicdevice being colored, and a bleached state with both electrochromicdevices being bleached. Embodiments of multi-pane electrochromic windowsare further described in U.S. Pat. No. 8,270,059, naming Robin Friedmanet al. as inventors, titled “MULTI-PANE ELECTROCHROMIC WINDOWS,” whichis hereby incorporated by reference in its entirety.

In some embodiments, the window controller is able to transition anelectrochromic window having an electrochromic device capable oftransitioning between two or more tint levels. For example, a windowcontroller may be able to transition the electrochromic window to ableached state, one or more intermediate levels, and a colored state. Insome other embodiments, the window controller is able to transition anelectrochromic window incorporating an electrochromic device between anynumber of tint levels between the bleached state and the colored state.Embodiments of methods and controllers for transitioning anelectrochromic window to an intermediate tint level or levels arefurther described in U.S. Pat. No. 8,254,013, naming Disha Mehtani etal. as inventors, titled “CONTROLLING TRANSITIONS IN OPTICALLYSWITCHABLE DEVICES,” which is hereby incorporated by reference in itsentirety.

In some embodiments, a window controller can power one or moreelectrochromic devices in an electrochromic window. Typically, thisfunction of the window controller is augmented with one or more otherfunctions described in more detail below. Window controllers describedherein are not limited to those that have the function of powering anelectrochromic device to which it is associated for the purposes ofcontrol. That is, the power source for the electrochromic window may beseparate from the window controller, where the controller has its ownpower source and directs application of power from the window powersource to the window. However, it is convenient to include a powersource with the window controller and to configure the controller topower the window directly, because it obviates the need for separatewiring for powering the electrochromic window.

Further, the window controllers described in this section are describedas standalone controllers which may be configured to control thefunctions of a single window or a plurality of electrochromic windows,without integration of the window controller into a building controlnetwork or a building management system (BMS). Window controllers,however, may be integrated into a building control network or a BMS, asdescribed further in the Building Management System section of thisdisclosure.

FIG. 4 depicts a block diagram of some components of a window controller450 and other components of a window controller system of disclosedembodiments. FIG. 4 is a simplified block diagram of a windowcontroller, and more detail regarding window controllers can be found inU.S. patent application Ser. Nos. 13/449,248 and 13/449,251, both namingStephen Brown as inventor, both titled “CONTROLLER FOROPTICALLY-SWITCHABLE WINDOWS,” and both filed on Apr. 17, 2012, and inU.S. patent Ser. No. 13/449,235, titled “CONTROLLING TRANSITIONS INOPTICALLY SWITCHABLE DEVICES,” naming Stephen Brown et al. as inventorsand filed on Apr. 17, 2012, all of which are hereby incorporated byreference in their entireties.

In FIG. 4 , the illustrated components of the window controller 450include a window controller 450 having a microprocessor 455 or otherprocessor, a pulse width modulator 460, a signal conditioning module465, and a computer readable medium (e.g., memory) having aconfiguration file 475. Window controller 450 is in electroniccommunication with one or more electrochromic devices 400 in anelectrochromic window through network 480 (wired or wireless) to sendinstructions to the one or more electrochromic devices 400. In someembodiments, the window controller 450 may be a local window controllerin communication through a network (wired or wireless) to a masterwindow controller.

In disclosed embodiments, a building may have at least one room havingan electrochromic window between the exterior and interior of abuilding. One or more sensors may be located to the exterior of thebuilding and/or inside the room. In embodiments, the output from the oneor more sensors may be input to the signal conditioning module 465 ofthe window controller 450. In some cases, the output from the one ormore sensors may be input to a BMS, as described further in the BuildingManagement Systems section. Although the sensors of depicted embodimentsare shown as located on the outside vertical wall of the building, thisis for the sake of simplicity, and the sensors may be in otherlocations, such as inside the room or on other surfaces to the exterior,as well. In some cases, two or more sensors may be used to measure thesame input, which can provide redundancy in case one sensor fails or hasan otherwise erroneous reading.

FIG. 5 depicts a schematic (side view) diagram of a room 500 having anelectrochromic window 505 with at least one electrochromic device. Theelectrochromic window 505 is located between the exterior and theinterior of a building, which includes the room 500. The room 500 alsoincludes a window controller 450 connected to and configured to controlthe tint level of the electrochromic window 505. An exterior sensor 510is located on a vertical surface in the exterior of the building. Inother embodiments, an interior sensor may also be used to measure theambient light in room 500. In yet other embodiments, an occupant sensormay also be used to determine when an occupant is in the room 500.

Exterior sensor 510 is a device, such as a photosensor, that is able todetect radiant light incident upon the device flowing from a lightsource such as the sun or from light reflected to the sensor from asurface, particles in the atmosphere, clouds, etc. The exterior sensor510 may generate a signal in the form of electrical current that resultsfrom the photoelectric effect and the signal may be a function of thelight incident on the sensor 510. In some cases, the device may detectradiant light in terms of irradiance in units of watts/m² or othersimilar units. In other cases, the device may detect light in thevisible range of wavelengths in units of foot candles or similar units.In many cases, there is a linear relationship between these values ofirradiance and visible light.

In some embodiments, exterior sensor 510 is configured to measureinfrared light. In some embodiments, an exterior photosensor isconfigured to measure infrared light and/or visible light. In someembodiments, an exterior photosensor 510 may also include sensors formeasuring temperature and/or humidity data. In some embodiments,intelligence logic may determine the presence of an obstructing cloudand/or quantify the obstruction caused by a cloud using one or moreparameters (e.g., visible light data, infrared light data, humiditydata, and temperature data) determined using an exterior sensor orreceived from an external network (e.g., a weather station). Variousmethods of detecting clouds using infrared sensors are described inInternational Patent Application No. PCT/US17/55631, titled “INFRAREDCLOUD DETECTOR SYSTEMS AND METHODS,” and filed, Oct. 6, 2017 whichdesignates the United States and is incorporated herein in its entirety.

Irradiance values from sunlight can be predicted based on the time ofday and time of year as the angle at which sunlight strikes the earthchanges. Exterior sensor 510 can detect radiant light in real-time,which accounts for reflected and obstructed light due to buildings,changes in weather (e.g., clouds), etc. For example, on cloudy days,sunlight would be blocked by the clouds and the radiant light detectedby an exterior sensor 510 would be lower than on cloudless days.

In some embodiments, there may be one or more exterior sensors 510associated with a single electrochromic window 505. Output from the oneor more exterior sensors 510 could be compared to one another todetermine, for example, if one of exterior sensors 510 is shaded by anobject, such as by a bird that landed on exterior sensor 510. In somecases, it may be desirable to use relatively few sensors in a buildingbecause some sensors can be unreliable and/or expensive. In certainimplementations, a single sensor or a few sensors may be employed todetermine the current level of radiant light from the sun impinging onthe building or perhaps one side of the building. A cloud may pass infront of the sun or a construction vehicle may park in front of thesetting sun. These will result in deviations from the amount of radiantlight from the sun calculated to normally impinge on the building.

Exterior sensor 510 may be a type of photosensor. For example, exteriorsensor 510 may be a charge coupled device (CCD), photodiode,photoresistor, or photovoltaic cell. One of ordinary skill in the artwould appreciate that future developments in photosensor and othersensor technology would also work, as they measure light intensity andprovide an electrical output representative of the light level.

In some embodiments, output from exterior sensor 510 may be input to thesignal conditioning module 465. The input may be in the form of avoltage signal to signal conditioning module 465. Signal conditioningmodule 465 passes an output signal to the window controller 450. Windowcontroller 450 determines a tint level of the electrochromic window 505,based on various information from the configuration file 475, outputfrom the signal conditioning module 465, override values. Windowcontroller 450 and then instructs the PWM 460, to apply a voltage and/orcurrent to electrochromic window 505 to transition to the desired tintlevel.

In disclosed embodiments, window controller 450 can instruct the PWM460, to apply a voltage and/or current to electrochromic window 505 totransition it to any one of four or more different tint levels. Indisclosed embodiments, electrochromic window 505 can be transitioned toat least eight different tint levels described as: 0 (lightest), 5, 10,15, 20, 25, 30, and 35 (darkest). The tint levels may linearlycorrespond to visual transmittance values and solar heat gaincoefficient (SHGC) values of light transmitted through theelectrochromic window 505. For example, using the above eight tintlevels, the lightest tint level of 0 may correspond to an SHGC value of0.80, the tint level of 5 may correspond to an SHGC value of 0.70, thetint level of 10 may correspond to an SHGC value of 0.60, the tint levelof 15 may correspond to an SHGC value of 0.50, the tint level of 20 maycorrespond to an SHGC value of 0.40, the tint level of 25 may correspondto an SHGC value of 0.30, the tint level of 30 may correspond to an SHGCvalue of 0.20, and the tint level of 35 (darkest) may correspond to anSHGC value of 0.10.

Window controller 450 or a master controller in communication with thewindow controller 450 may employ any one or more predictive controllogic components to determine a desired tint level based on signals fromthe exterior sensor 510 and/or other input. The window controller 450can instruct the PWM 460 to apply a voltage and/or current toelectrochromic window 505 to transition it to the desired tint level.

III. An Example of Predictive Control Logic

In disclosed embodiments, predictive control logic is used to implementmethods of determining and controlling a desired tint level for theelectrochromic window 505 or other tintable window that accounts foroccupant comfort and/or energy conservation considerations. Thispredictive control logic may employ one or more logic modules. FIGS.6A-6C include diagrams depicting some information collected by each ofthree logic modules A, B, and C of an exemplary control logic ofdisclosed embodiments.

FIG. 6A shows the penetration depth of direct sunlight into a room 500through an electrochromic window 505 between the exterior and theinterior of a building, which includes the room 500. Penetration depthis a measure of how far direct sunlight will penetrate into the room500. As shown, penetration depth is measured in a horizontal directionaway from the sill (bottom) of window 505. Generally, the window definesan aperture that provides an acceptance angle for direct sunlight. Thepenetration depth is calculated based upon the geometry of the window(e.g., window dimensions), its position and orientation in the room, anyfins or other exterior shading outside of the window, and the positionof the sun (e.g. angle of direct sunlight for a particular time of dayand date). Exterior shading to an electrochromic window 505 may be dueto any type of structure that can shade the window such as an overhang,a fin, etc. In FIG. 6A, there is an overhang 520 above theelectrochromic window 505 that blocks a portion of the direct sunlightentering the room 500 thus shortening the penetration depth. The room500 also includes a local window controller 450 connected to andconfigured to control the tint level of the electrochromic window 505.An exterior sensor 510 is located on a vertical surface in the exteriorof the building.

Module A can be used to determine a tint level that considers occupantcomfort from direct sunlight through the electrochromic window 505 ontoan occupant or their activity area. The tint level is determined basedon a calculated penetration depth of direct sunlight into the room andthe space type (e.g., desk near window, lobby, etc.) in the room at aparticular instant in time. In some cases, the tint level may also bebased on providing sufficient natural lighting into the room. In manycases, the penetration depth is the value calculated at a time in thefuture to account for glass transition time (the time required for thewindow to tint, e.g. to 80%, 90% or 100% of the desired tint level). Theissue addressed in Module A is that direct sunlight may penetrate sodeeply into the room 500 as to show directly on an occupant working at adesk or other work surface in a room. Publicly available programs canprovide calculation of the sun's position and allow for easy calculationof penetration depth.

FIG. 6A also shows a desk in the room 500 as an example of a space typeassociated with an activity area (i.e. desk) and location of theactivity area (i.e. location of desk). Each space type is associatedwith different tint levels for occupant comfort. For example, if theactivity is a critical activity such as work in an office being done ata desk or computer, and the desk is located near the window, the desiredtint level may be higher than if the desk were further away from thewindow. As another example, if the activity is non-critical, such as theactivity in a lobby, the desired tint level may be lower than for thesame space having a desk.

FIG. 6B shows direct sunlight and radiation under clear sky conditionsentering the room 500 through the electrochromic window 505. Theradiation may be from sunlight scattered by molecules and particles inthe atmosphere. Module B determines a tint level based on predictedvalues of irradiance under clear sky conditions flowing through theelectrochromic window 505 under consideration. Various software, such asthe open source RADIANCE program, can be used to predict clear skyirradiance at a certain latitude, longitude, time of year, and time ofday, and for a given window orientation.

FIG. 6C shows radiant light from the sky that is measured in real-timeby an exterior sensor 510 to account for light that may be obstructed byor reflected from objects such as buildings or weather conditions (e.g.,clouds) that are not accounted for in the clear sky predictions. Thetint level determined by Module C is based on the real-time irradiancebased on measurements taken by the exterior sensor 510.

The predictive control logic may implement one or more of the logicModules A, B and C separately for each electrochromic window 505 in thebuilding. Each electrochromic window 505 can have a unique set ofdimensions, orientation (e.g., vertical, horizontal, tilted at anangle), position, associated space type, etc. A configuration file withthis information and other information can be maintained for eachelectrochromic window 505. The configuration file 475 (refer to FIG. 4 )may be stored in the computer readable medium 470 of the local windowcontroller 450 of the electrochromic window 505 or in the buildingmanagement system (“BMS”) described later in this disclosure. Theconfiguration file 475 can include information such as a windowconfiguration, an occupancy lookup table, information about anassociated datum glass, and/or other data used by the predictive controllogic. The window configuration may include information such as thedimensions of the electrochromic window 505, the orientation of theelectrochromic window 505, the position of the electrochromic window505, etc.

A lookup table describes tint levels that provide occupant comfort forcertain space types and penetration depths. That is, the tint levels inthe occupancy lookup table are designed to provide comfort tooccupant(s) that may be in the room 500 from direct sunlight on theoccupant(s) or their workspace. An example of an occupancy lookup tableis shown in FIG. 10 .

The space type is a measure to determine how much tinting will berequired to address occupant comfort concerns for a given penetrationdepth and/or provide comfortable natural lighting in the room. The spacetype parameter may take into consideration many factors. Among thesefactors is the type of work or other activity being conducted in aparticular room and the location of the activity. Close work associatedwith detailed study requiring great attention might be at one spacetype, while a lounge or a conference room might have a different spacetype. Additionally, the position of the desk or other work surface inthe room with respect to the window is a consideration in defining thespace type. For example, the space type may be associated with an officeof a single occupant having a desk or other workspace located near theelectrochromic window 505. As another example, the space type may be alobby.

In certain embodiments, one or more modules of the predictive controllogic can determine desired tint levels while accounting for energyconservation in addition to occupant comfort. These modules maydetermine energy savings associated with a particular tint level bycomparing the performance of the electrochromic window 505 at that tintlevel to a datum glass or other standard reference window. The purposeof using this reference window can be to ensure that the predictivecontrol logic conforms to requirements of the municipal building code orother requirements for reference windows used in the locale of thebuilding. Often municipalities define reference windows usingconventional low emissivity glass to control the amount of airconditioning load in the building. As an example of how the referencewindow 505 fits into the predictive control logic, the logic may bedesigned so that the irradiance coming through a given electrochromicwindow 505 is never greater than the maximum irradiance coming through areference window as specified by the respective municipality. Indisclosed embodiments, predictive control logic may use the solar heatgain coefficient (SHGC) value of the electrochromic window 505 at aparticular tint level and the SHGC of the reference window to determinethe energy savings of using the tint level. Generally, the value of theSHGC is the fraction of incident light of all wavelengths transmittedthrough the window. Although a datum glass is described in manyembodiments, other standard reference windows can be used. Generally theSHGC of the reference window (e.g., datum glass) is a variable that canbe different for different geographical locations and windoworientations, and is based on code requirements specified by therespective municipality.

Generally, buildings are designed to have a heating, ventilation, andair conditioning system (“HVAC”) with the capacity to fulfill themaximum expected heating and/or air-conditioning loads required at anygiven instance. The calculation of required capacity may take intoconsideration the datum glass or reference window required in a buildingat the particular location where the building is being constructed.Therefore, it is important that the predictive control logic meet orexceed the functional requirements of the datum glass in order to allowbuilding designers to confidently determine how much HVAC capacity toput into a particular building. Since the predictive control logic canbe used to tint the window to provide additional energy savings over thedatum glass, the predictive control logic could be useful in allowingbuilding designers to have a lower HVAC capacity than would have beenrequired using the datum glass specified by the codes and standards.

Particular embodiments described herein assume that energy conservationis achieved by reducing air conditioning load in a building. Therefore,many of the implementations attempt to achieve the maximum tintingpossible, while accounting for occupant comfort level and perhapslighting load in a room having with the window under consideration.However, in some climates, such as those at far northern and forsouthern latitudes, heating may be more of a concern than airconditioning. Therefore, the predictive control logic can be modified,specifically, road reversed in some matters, so that less tinting occursin order to ensure that the heating load of the building is reduced.

In certain implementations, the predictive control logic has only twoindependent variables that can be controlled by an occupant (end user),building designer, or building operator. These are the space types for agiven window and the datum glass associated with the given window. Oftenthe datum glass is specified when the predictive control logic isimplemented for a given building. The space type can vary, but istypically static. In certain implementations, the space type may be partof the configuration file maintained by the building or stored in thelocal window controller 450. In some cases, the configuration file maybe updated to account for various changes in the building. For example,if there is a change in the space type (e.g., desk moved in an office,addition of desk, lobby changed into office area, wall moved, etc.) inthe building, an updated configuration file with a modified occupancylookup table may be stored in the computer readable medium 470. Asanother example, if an occupant is hitting manual override repeatedly,then the configuration file may be updated to reflect the manualoverride.

FIG. 7 is a flowchart showing predictive control logic for a method ofcontrolling one or more electrochromic windows 505 in a building,according to embodiments. The predictive control logic uses one or moreof the Modules A, B, and C to calculate tint levels for the window(s)and sends instructions to transition the window(s). The calculations inthe control logic are run 1 to n times at intervals timed by the timerat step 610. For example, the tint level can be recalculated 1 to ntimes by one or more of the Modules A, B, and C and calculated forinstances in time t_(i)=t₁, t₂ . . . t_(n). n is the number ofrecalculations performed and n can be at least 1. The logic calculationscan be done at constant time intervals in some cases. In one cases, thelogic calculations may be done every 2 to 5 minutes. However, tinttransition for large pieces of electrochromic glass (e.g. up to 6′×10feet) can take up to 30 minutes or more. For these large windows,calculations may be done on a less frequent basis such as every 30minutes.

At step 620, logic Modules A, B, and C perform calculations to determinea tint level for each electrochromic window 505 at a single instant intime t_(i). These calculations can be performed by the window controller450. In certain embodiments, the predictive control logic predictivelycalculates how the window should transition in advance of the actualtransition. In these cases, the calculations in Modules A, B, and C canbe based on a future time around or after transition is complete. Inthese cases, the future time used in the calculations may be a time inthe future that is sufficient to allow the transition to be completedafter receiving the tint instructions. In these cases, the controllercan send tint instructions in the present time in advance of the actualtransition. By the completion of the transition, the window will havetransitioned to a tint level that is desired for that time.

At step 630, the predictive control logic allows for certain types ofoverrides that disengage the algorithm at Modules A, B, and C and defineoverride tint levels at step 640 based on some other consideration. Onetype of override is a manual override. This is an override implementedby an end user who is occupying a room and determines that a particulartint level (override value) is desirable. There may be situations wherethe user's manual override is itself overridden. An example of anoverride is a high demand (or peak load) override, which is associatedwith a requirement of a utility that energy consumption in the buildingbe reduced. For example, on particularly hot days in large metropolitanareas, it may be necessary to reduce energy consumption throughout themunicipality in order to not overly tax the municipality's energygeneration and delivery systems. In such cases, the building mayoverride the tint level from the predictive control logic describedherein to ensure that all windows have a particularly high level oftinting. Another example of an override may be if there is no occupantin the room during a weekend in a commercial office building. In thesecases, the building may disengage one or more Modules that relate tooccupant comfort and all the windows may have a high level of tinting incold weather and low level of tinting in warm weather.

At step 650, the tint levels are transmitted over a network toelectrochromic device(s) in one or more electrochromic windows 505 inthe building. In certain embodiments, the transmission of tint levels toall windows of a building may be implemented with efficiency in mind.For example, if the recalculation of tint level suggests that no changein tint from the current tint level is required, then there is notransmission of instructions with an updated tint level. As anotherexample, the building may be divided into zones based on window size.The predictive control logic may recalculate tint levels for zones withsmaller windows more frequently than for zones with larger windows.

In some embodiments, the logic in FIG. 7 for implementing the controlmethods for multiple electrochromic windows 505 in an entire buildingcan be on a single device, for example, a single master windowcontroller. This device can perform the calculations for each and everytintable window in the building and also provide an interface fortransmitting tint levels to one or more electrochromic devices inindividual electrochromic windows 505, for example, in multi-zonewindows or on multiple EC lites of an insulated glass unit. Someexamples of multi-zone windows can be found in PCT application No.PCT/US14/71314 titled “MULTI-ZONE EC WINDOWS,” which is herebyincorporated by reference in its entirety.

Also, there may be certain adaptive components of the predictive controllogic of embodiments. For example, the predictive control logic maydetermine how an end user (e.g. occupant) tries to override thealgorithm at particular times of day and makes use of this informationin a more predictive manner to determine desired tint levels. In onecase, the end user may be using a wall switch to override the tint levelprovided by the predictive logic at a certain time each day to anoverride value. The predictive control logic may receive informationabout these instances and change the predictive control logic to changethe tint level to the override value at that time of day.

FIG. 8 is a diagram showing a particular implementation of block 620from FIG. 7 . This diagram shows a method of performing all threeModules A, B, and C in sequence to calculate a final tint level of aparticular electrochromic window 505 for a single instant in time t_(i).The final tint level may be the maximum permissible transmissivity ofthe window under consideration. FIG. 8 also includes some exemplaryinputs and outputs of Modules A, B, and C. The calculations in ModulesA, B, and C are performed by window controller 450 in local windowcontroller 450 in embodiments. In other embodiments, one or more of themodules can be performed by another processor. Although illustratedembodiments show all three Modules A, B, and C being used, otherembodiments may use one or more of the Modules A, B, and C or may useadditional modules.

At step 700, window controller 450 uses Module A to determine a tintlevel for occupant comfort to prevent direct glare from sunlightpenetrating the room 500. Window controller 450 uses Module A tocalculate the penetration depth of direct sunlight into the room 500based on the sun's position in the sky and the window configuration fromthe configuration file. The position of the sun is calculated based onthe latitude and longitude of the building and the time of day and date.The occupancy lookup table and space type are input from a configurationfile for the particular window. Module A outputs the Tint level from Ato Module B.

The goal of Module A is to ensure that direct sunlight or glare does notstrike the occupant or his or her workspace. The tint level from ModuleA is determined to accomplish this purpose. Subsequent calculations oftint level in Modules B and C can reduce energy consumption and mayrequire even greater tint. However, if subsequent calculations of tintlevel based on energy consumption suggest less tinting than required toavoid interfering with the occupant, the predictive logic prevents thecalculated greater level of transmissivity from being executed to assureoccupant comfort.

At step 800, the tint level calculated in Module A is input into ModuleB. A tint level is calculated based on predictions of irradiance underclear sky conditions (clear sky irradiance). Window controller 450 usesModule B to predict clear sky irradiance for the electrochromic window505 based on window orientation from the configuration file and based onlatitude and longitude of the building. These predictions are also basedon a time of day and date. Publicly available software such as theRADIANCE program, which is an open-source program, can provide thecalculations for predicting clear sky irradiance. In someimplementations, clear sky irradiance is predicted in real time byRADIANCE as time of day and date information is retrieved or provided asa control input to RADIANCE. The SHGC of the datum glass is also inputinto Module B from the configuration file. Window controller 450 usesModule B to determine a tint level that is darker than the tint level inA and transmits less heat than the datum glass is predicted to transmitunder maximum clear sky irradiance. Maximum clear sky irradiance is thehighest level of irradiance for all times predicted for clear skyconditions.

At step 900, a tint level from B and predicted clear sky irradiance areinput to Module C. Real-time irradiance values are input to Module Cbased on measurements from an exterior sensor 510. Window controller 450uses Module C to calculate irradiance transmitted into the room if thewindow were tinted to the Tint level from Module B under clear skyconditions. Window controller 450 uses Module C to find the appropriatetint level where the actual irradiance through the window with this tintlevel is less than or equal to the irradiance through the window withthe Tint level from Module B. The tint level determined in Module C isthe final tint level.

Much of the information input to the predictive control logic isdetermined from fixed information about the latitude and longitude, timeand date. This information describes where the sun is with respect tothe building, and more particularly with respect to the window for whichthe predictive control logic is being implemented. The position of thesun with respect to the window provides information such as thepenetration depth of direct sunlight into the room assisted with thewindow. It also provides an indication of the maximum irradiance orsolar radiant energy flux coming through the window. This calculatedlevel of irradiance can be modified by sensor input which might indicatethat there is a reduction from the maximum amount of irradiance. Again,such reduction might be caused by a cloud or other obstruction betweenthe window and the sun.

FIG. 9 is a flowchart showing details of step 700 of FIG. 8 . At step705, Module A begins. At step 710, the window controller 450 uses ModuleA to calculate the position of the sun for the latitude and longitudecoordinates of the building and the date and time of day of a particularinstant in time, t_(i). The latitude and longitude coordinates may beinput from the configuration file. The date and time of day may be basedon the current time provided by the timer. The sun position iscalculated at the particular instant in time, t_(i), which may be in thefuture in some cases. In other embodiments, the position of the sun iscalculated in another component (e.g., module) of the predictive controllogic.

At step 720, window controller 450 uses Module A to calculate thepenetration depth of direct sunlight into the room 500 at the particularinstant in time used in step 710. Module A calculates the penetrationdepth based on the calculated position of the sun and windowconfiguration information including the position of the window,dimensions of the window, orientation of the window (i.e. directionfacing), and the details of any exterior shading. The windowconfiguration information is input from the configuration fileassociated with the electrochromic window 505. For example, Module A canbe used to calculate the penetration depth of the vertical window shownin FIG. 6A by first calculating the angle θ of the direct sunlight basedon the position of the sun calculated at the particular instant in time.The penetration depth can be determined based on calculated angle θ andthe location of the lintel (top of the window).

At step 730, a tint level is determined that will provide occupantcomfort for the penetration depth calculated in step 720. The occupancylookup table is used to find a desired tint level for the space typeassociated with the window, for the calculated penetration depth, andfor the acceptance angle of the window. The space type and occupancylookup table are provided as input from the configuration file for theparticular window.

An example of an occupancy lookup table is provided in FIG. 10 . Thevalues in the table are in terms of a Tint level and associated SHGCvalues in parenthesis. FIG. 10 shows the different tint levels (SHGCvalues) for different combinations of calculated penetration values andspace types. The table is based on eight tint levels including 0(lightest), 5, 10, 15, 20, 25, 30, and 35 (lightest). The lightest tintlevel of 0 corresponds to an SHGC value of 0.80, the tint level of 5corresponds to an SHGC value of 0.70, the tint level of 10 correspondsto an SHGC value of 0.60, the tint level of 15 corresponds to an SHGCvalue of 0.50, the tint level of 20 corresponds to an SHGC value of0.40, the tint level of 25 corresponds to an SHGC value of 0.30, thetint level of 30 corresponds to an SHGC value of 0.20, and the tintlevel of 35 (darkest) corresponds to an SHGC value of 0.10. Theillustrated example includes three space types: Desk 1, Desk 2, andLobby and six penetration depths. FIG. 11A shows the location of Desk 1in the room 500. FIG. 11B shows the location of Desk 2 in the room 500.As shown in the occupancy lookup table of FIG. 10 , the tint levels forDesk 1 close to the window are higher than the tint levels for Desk 2far from window to prevent glare when the desk is closer to the window.Occupancy lookup tables with other values may be used in otherembodiments. For example, one other occupancy lookup table may includeonly four tint levels associated with the penetration values. Anotherexample of an occupancy table with four tint levels associated with fourpenetration depths is shown in FIG. 20 .

FIG. 12 is a diagram showing further detail of step 800 of FIG. 8 . Atstep 805, Module B begins. At step 810, Module B can be used to predictthe irradiance at the window under clear sky conditions at t_(i). Thisclear sky irradiance at t_(i) is predicted based on the latitude andlongitude coordinates of the building and the window orientation (i.e.direction the window is facing). At step 820, the Maximum Clear SkyIrradiance incident the window at all times is predicted. Thesepredicted values of clear sky irradiance can be calculated using opensource software, such as Radiance. The Maximum Clear Sky Irradiance canbe stored in/retrieved from an irradiation file stored on a computerreadable medium, as described in greater detail below.

At step 830, the window controller 450 uses Module B to determine themaximum amount of irradiance that would be transmitted through a datumglass into the room 500 at that time (i.e. determines Maximum DatumInside Irradiance). The calculated Maximum Clear Sky Irradiance fromstep 820 and the datum glass SHGC value from the configuration file canbe used to calculate the Maximum Irradiance inside the space using theequation: Maximum Datum Inside Irradiance=Datum Glass SHGC×Maximum ClearSky Irradiance.

At step 840, window controller 450 uses Module B to determine insideirradiance into the room 500 having a window with the current tint levelbased on the equation. The calculated Clear Sky Irradiance from step 810and the SHGC value associated with the current tint level can be used tocalculate the value of the inside irradiance using the equation: Tintlevel Irradiance=Tint level SHGC×Clear Sky Irradiance. In someimplementations, the Clear Sky Irradiance is an irradiation valueretrieved from the irradiation file. The irradiation value may have beenupdated or modified using some techniques disclosed herein, forinstance, e.g., using Module B′.

In one embodiment, one or more the steps 705, 810 and 820 may beperformed by a solar position calculator separate from Modules A and B.A solar position calculator refers to logic that determines the positionof the sun at a particular future time and makes predictivedeterminations (e.g., predicts clear sky irradiance) based on the sun'sposition at that future time. The solar position calculator may performone or more steps of the methods disclosed herein. The solar positioncalculator may be a portion of the predictive control logic performed byone or more of the components of the master window controller (e.g.,master window controller 1402 depicted in FIG. 17 ). For example, thesolar position calculator may be part of the predictive control logicshown in FIG. 18 implemented by the window controller 1410 (shown inFIG. 17 ).

At step 850, window controller 450 uses Module B to determine whetherthe inside irradiance based on the current tint level is less than orequal to the maximum datum inside irradiance and the tint level isdarker than the tint level from A. If the determination is NO, thecurrent tint level is incrementally increased (darkened) at step 860 andthe inside irradiance is recalculated at step 840. If the determinationis YES at step 850, Module B ends.

FIG. 13 is a diagram showing further detail of step 900 of FIG. 8 . Atstep 905, Module C begins. A tint level from B and predicted clear skyirradiance at the instant in time t_(i) is input from Module B.Real-time irradiance values are input to Module C based on measurementsfrom an exterior sensor 510.

At step 910, window controller 450 uses Module C to calculate irradiancetransmitted into the room through an electrochromic window 505 tinted tothe Tint level from B under clear sky conditions. This Calculated InsideIrradiance can be determined using the equation: Calculated InsideIrradiance=SHGC of Tint Level from B×Predicted Clear Sky Irradiance fromB.

At step 920, window controller 450 uses Module C to find the appropriatetint level where the actual irradiance through the window with this tintlevel is less than or equal to the irradiance through the window withthe Tint level from B (i.e. Actual Inside Irradiance≤Calculated InsideIrradiance). The actual irradiance is measured as the product of thesolar radiance (SR) or outside irradiance and the Tint level SHGC. Insome cases, the module logic starts with the tint level from B andincrementally increases the tint level until the Actual InsideIrradiance≤Calculated Inside Irradiance. The tint level determined inModule C is the final tint level. This final tint level may betransmitted in tint instructions over the network to the electrochromicdevice(s) in the electrochromic window 505.

FIG. 14 is a diagram includes another implementation of block 620 fromFIG. 7 . This diagram shows a method of performing Modules A, B, and Cof embodiments. In this method, the position of the sun is calculatedbased on the latitude and longitude coordinates of the building for asingle instant in time t_(i). The penetration depth is calculated inModule A based on the window configuration including a position of thewindow, dimensions of the window, orientation of the window, andinformation about any external shading. Module A uses a lookup table todetermine the tint level from A based on the calculated penetration andthe space type. The tint level from A is then input into Module B.

A program such as the open source program Radiance, is used to determineclear sky irradiance based on window orientation and latitude andlongitude coordinates of the building for both a single instant in timet_(i) and a maximum value for all times. The datum glass SHGC andcalculated maximum clear sky irradiance are input into Module B. ModuleB increases the tint level calculated in Module A in steps and picks atint level where the Inside radiation is less than or equal to the DatumInside Irradiance where: Inside Irradiance=Tint level SHGC×Clear SkyIrradiance and Datum Inside Irradiance=Datum SHGC×Maximum Clear SkyIrradiance. However, when Module A calculates the maximum tint of theglass, Module B doesn't change the tint to make it lighter. The tintlevel calculated in B is then input into Module C. The predicted clearsky irradiance is also input into Module C.

Module C calculates the inside irradiance in the room with anelectrochromic window 505 having the tint level from B using theequation: Calculated Inside Irradiance=SHGC of Tint Level fromB×Predicted Clear Sky Irradiance from B. Module C then finds theappropriate tint level that meets the condition where actual insideirradiance is less than or equal to the Calculated Inside Irradiance.The actual inside irradiance is determined using the equation: ActualInside Irradiance=SR×Tint level SHGC. The tint level determined byModule C is the final tint level in tint instructions sent to theelectrochromic window 505.

IV. Building Management Systems (BMSs)

The window controllers described herein also are suited for integrationwith a BMS. A BMS is a computer-based control system installed in abuilding that monitors and controls the building's mechanical andelectrical equipment such as ventilation, lighting, power systems,elevators, fire systems, and security systems. A BMS consists ofhardware, including interconnections by communication channels to acomputer or computers, and associated software for maintainingconditions in the building according to preferences set by the occupantsand/or by the building manager. For example, a BMS may be implementedusing a local area network, such as Ethernet. The software can be basedon, for example, internet protocols and/or open standards. One exampleis software from Tridium, Inc. (of Richmond, Va.). One communicationsprotocol commonly used with a BMS is BACnet (building automation andcontrol networks).

A BMS is most common in a large building, and typically functions atleast to control the environment within the building. For example, a BMSmay control temperature, carbon dioxide levels, and humidity within abuilding. Typically, there are many mechanical devices that arecontrolled by a BMS such as heaters, air conditioners, blowers, vents,and the like. To control the building environment, a BMS may turn on andoff these various devices under defined conditions. A core function of atypical modern BMS is to maintain a comfortable environment for thebuilding's occupants while minimizing heating and cooling costs/demand.Thus, a modern BMS is used not only to monitor and control, but also tooptimize the synergy between various systems, for example, to conserveenergy and lower building operation costs.

In some embodiments, a window controller is integrated with a BMS, wherethe window controller is configured to control one or moreelectrochromic windows 505 or other tintable windows. In one embodiment,the one or more electrochromic windows include at least one all solidstate and inorganic electrochromic device, but may include more than oneelectrochromic device, e.g. where each lite or pane of an IGU istintable. In one embodiment, the one or more electrochromic windowsinclude only all solid state and inorganic electrochromic devices. Inone embodiment, the electrochromic windows are multistate electrochromicwindows, as described in U.S. patent application Ser. No. 12/851,514,filed on Aug. 5, 2010, and entitled “Multipane Electrochromic Windows.”

FIG. 15 depicts a schematic diagram of an embodiment of a BMS 1100, thatmanages a number of systems of a building 1101, including securitysystems, heating/ventilation/air conditioning (HVAC), lighting of thebuilding, power systems, elevators, fire systems, and the like. Securitysystems may include magnetic card access, turnstiles, solenoid drivendoor locks, surveillance cameras, burglar alarms, metal detectors, andthe like. Fire systems may include fire alarms and fire suppressionsystems including a water plumbing control. Lighting systems may includeinterior lighting, exterior lighting, emergency warning lights,emergency exit signs, and emergency floor egress lighting. Power systemsmay include the main power, backup power generators, and uninterruptedpower source (UPS) grids.

Also, BMS 1100 manages a master window controller 1102. In this example,master window controller 1102 is depicted as a distributed network ofwindow controllers including a master network controller, 1103,intermediate network controllers, 1105 a and 1105 b, and end or leafcontrollers 1110. End or leaf controllers 1110 may be similar to windowcontroller 450 described with respect to FIG. 4 . For example, masternetwork controller 1103 may be in proximity to the BMS 1100, and eachfloor of building 1101 may have one or more intermediate networkcontrollers 1105 a and 1105 b, while each window of the building has itsown end controller 1110. In this example, each of controllers 1110controls a specific electrochromic window of building 1101.

Each of controllers 1110 can be in a separate location from theelectrochromic window that it controls, or be integrated into theelectrochromic window. For simplicity, only ten electrochromic windowsof building 1101 are depicted as controlled by master window controller1102. In a typical setting there may be a large number of electrochromicwindows in a building controlled by master window controller 1102.Master window controller 1102 need not be a distributed network ofwindow controllers. For example, a single end controller which controlsthe functions of a single electrochromic window also falls within thescope of the embodiments disclosed herein, as described above.Advantages and features of incorporating electrochromic windowcontrollers as described herein with BMSs are described below in moredetail and in relation to FIG. 15 , where appropriate.

One aspect of the disclosed embodiments is a BMS including amultipurpose electrochromic window controller as described herein. Byincorporating feedback from a electrochromic window controller, a BMScan provide, for example, enhanced: 1) environmental control, 2) energysavings, 3) security, 4) flexibility in control options, 5) improvedreliability and usable life of other systems due to less reliancethereon and therefore less maintenance thereof, 6) informationavailability and diagnostics, 7) effective use of, and higherproductivity from, staff, and various combinations of these, because theelectrochromic windows can be automatically controlled. In someembodiments, a BMS may not be present or a BMS may be present but maynot communicate with a master network controller or communicate at ahigh level with a master network controller. In certain embodiments,maintenance on the BMS would not interrupt control of the electrochromicwindows.

FIG. 16 depicts a block diagram of an embodiment of a building network1200 for a building. As noted above, network 1200 may employ any numberof different communication protocols, including BACnet. As shown,building network 1200 includes a master network controller 1205, alighting control panel 1210, a building management system (BMS) 1215, asecurity control system, 1220, and a user console, 1225. These differentcontrollers and systems in the building may be used to receive inputfrom and/or control a HVAC system 1230, lights 1235, security sensors1240, door locks 1245, cameras 1250, and tintable windows 1255, of thebuilding.

Master network controller 1205 may function in a similar manner asmaster network controller 1103 described with respect to FIG. 15 .Lighting control panel 1210 may include circuits to control the interiorlighting, the exterior lighting, the emergency warning lights, theemergency exit signs, and the emergency floor egress lighting. Lightingcontrol panel 1210 also may include occupancy sensors in the rooms ofthe building. BMS 1215 may include a computer server that receives datafrom and issues commands to the other systems and controllers of network1200. For example, BMS 1215 may receive data from and issue commands toeach of the master network controller 1205, lighting control panel 1210,and security control system 1220. Security control system 1220 mayinclude magnetic card access, turnstiles, solenoid driven door locks,surveillance cameras, burglar alarms, metal detectors, and the like.User console 1225 may be a computer terminal that can be used by thebuilding manager to schedule operations of, control, monitor, optimize,and troubleshoot the different systems of the building. Software fromTridium, Inc. may generate visual representations of data from differentsystems for user console 1225.

Each of the different controls may control individual devices/apparatus.Master network controller 1205 controls windows 1255. Lighting controlpanel 1210 controls lights 1235. BMS 1215 may control HVAC 1230.Security control system 1220 controls security sensors 1240, door locks1245, and cameras 1250. Data may be exchanged and/or shared between allof the different devices/apparatus and controllers that are part ofbuilding network 1200.

In some cases, the systems of BMS 1100 or building network 1200 may runaccording to daily, monthly, quarterly, or yearly schedules. Forexample, the lighting control system, the window control system, theHVAC, and the security system may operate on a 24 hour scheduleaccounting for when people are in the building during the work day. Atnight, the building may enter an energy savings mode, and during theday, the systems may operate in a manner that minimizes the energyconsumption of the building while providing for occupant comfort. Asanother example, the systems may shut down or enter an energy savingsmode over a holiday period.

The scheduling information may be combined with geographicalinformation. Geographical information may include the latitude andlongitude of the building. Geographical information also may includeinformation about the direction that each side of the building faces.Using such information, different rooms on different sides of thebuilding may be controlled in different manners. For example, for eastfacing rooms of the building in the winter, the window controller mayinstruct the windows to have no tint in the morning so that the roomwarms up due to sunlight shining in the room and the lighting controlpanel may instruct the lights to be dim because of the lighting from thesunlight. The west facing windows may be controllable by the occupantsof the room in the morning because the tint of the windows on the westside may have no impact on energy savings. However, the modes ofoperation of the east facing windows and the west facing windows mayswitch in the evening (e.g., when the sun is setting, the west facingwindows are not tinted to allow sunlight in for both heat and lighting).

Described below is an example of a building, for example, like building1101 in FIG. 15 , including a building network or a BMS, tintablewindows for the exterior windows of the building (i.e., windowsseparating the interior of the building from the exterior of thebuilding), and a number of different sensors. Light from exteriorwindows of a building generally has an effect on the interior lightingin the building about 20 feet or about 30 feet from the windows. Thatis, space in a building that is more that about 20 feet or about 30 feetfrom an exterior window receives little light from the exterior window.Such spaces away from exterior windows in a building are lit by lightingsystems of the building.

Further, the temperature within a building may be influenced by exteriorlight and/or the exterior temperature. For example, on a cold day andwith the building being heated by a heating system, rooms closer todoors and/or windows will lose heat faster than the interior regions ofthe building and be cooler compared to the interior regions.

For exterior sensors, the building may include exterior sensors on theroof of the building. Alternatively, the building may include anexterior sensor associated with each exterior window (e.g., as describedin relation to FIG. 5 , room 500) or an exterior sensor on each side ofthe building. An exterior sensor on each side of the building couldtrack the irradiance on a side of the building as the sun changesposition throughout the day.

Regarding the methods described with respect to FIGS. 7, 8, 9, 12, 13,and 14 , when a window controller is integrated into a building networkor a BMS, outputs from exterior sensors 510 may be input to a network ofBMS and provided as input to the local window controller 450. Forexample, in some embodiments, output signals from any two or moresensors are received. In some embodiments, only one output signal isreceived, and in some other embodiments, three, four, five, or moreoutputs are received. These output signals may be received over abuilding network or a BMS.

In some embodiments, the output signals received include a signalindicating energy or power consumption by a heating system, a coolingsystem, and/or lighting within the building. For example, the energy orpower consumption of the heating system, the cooling system, and/or thelighting of the building may be monitored to provide the signalindicating energy or power consumption. Devices may be interfaced withor attached to the circuits and/or wiring of the building to enable thismonitoring. Alternatively, the power systems in the building may beinstalled such that the power consumed by the heating system, a coolingsystem, and/or lighting for an individual room within the building or agroup of rooms within the building can be monitored.

Tint instructions can be provided to change to tint of the tintablewindow to the determined level of tint. For example, referring to FIG.15 , this may include master network controller 1103 issuing commands toone or more intermediate network controllers 1105 a and 1105 b, which inturn issue commands to end controllers 1110 that control each window ofthe building. End controllers 1100 may apply voltage and/or current tothe window to drive the change in tint pursuant to the instructions.

In some embodiments, a building including electrochromic windows and aBMS may be enrolled in or participate in a demand response program runby the utility or utilities providing power to the building. The programmay be a program in which the energy consumption of the building isreduced when a peak load occurrence is expected. The utility may sendout a warning signal prior to an expected peak load occurrence. Forexample, the warning may be sent on the day before, the morning of, orabout one hour before the expected peak load occurrence. A peak loadoccurrence may be expected to occur on a hot summer day when coolingsystems/air conditioners are drawing a large amount of power from theutility, for example. The warning signal may be received by the BMS ofthe building or by window controllers configured to control theelectrochromic windows in the building. This warning signal can be anoverride mechanism that disengages the Modules A, B, and C as shown inFIG. 7 . The BMS can then instruct the window controller(s) totransition the appropriate electrochromic device in the electrochromicwindows 505 to a dark tint level aid in reducing the power draw of thecooling systems in the building at the time when the peak load isexpected.

In some embodiments, tintable windows for the exterior windows of thebuilding (i.e., windows separating the interior of the building from theexterior of the building), may be grouped into zones, with tintablewindows in a zone being instructed in a similar manner. For example,groups of electrochromic windows on different floors of the building ordifferent sides of the building may be in different zones. For example,on the first floor of the building, all of the east facingelectrochromic windows may be in zone 1, all of the south facingelectrochromic windows may be in zone 2, all of the west facingelectrochromic windows may be in zone 3, and all of the north facingelectrochromic windows may be in zone 4. As another example, all of theelectrochromic windows on the first floor of the building may be in zone1, all of the electrochromic windows on the second floor may be in zone2, and all of the electrochromic windows on the third floor may be inzone 3. As yet another example, all of the east facing electrochromicwindows may be in zone 1, all of the south facing electrochromic windowsmay be in zone 2, all of the west facing electrochromic windows may bein zone 3, and all of the north facing electrochromic windows may be inzone 4. As yet another example, east facing electrochromic windows onone floor could be divided into different zones. Any number of tintablewindows on the same side and/or different sides and/or different floorsof the building may be assigned to a zone. In embodiments whereindividual tintable windows have independently controllable zones,tinting zones may be created on a building façade using combinations ofzones of individual windows, e.g. where individual windows may or maynot have all of their zones tinted.

In some embodiments, electrochromic windows in a zone may be controlledby the same window controller. In some other embodiments, electrochromicwindows in a zone may be controlled by different window controllers, butthe window controllers may all receive the same output signals fromsensors and use the same function or lookup table to determine the levelof tint for the windows in a zone.

In some embodiments, electrochromic windows in a zone may be controlledby a window controller or controllers that receive an output signal froma transmissivity sensor. In some embodiments, the transmissivity sensormay be mounted proximate the windows in a zone. For example, thetransmissivity sensor may be mounted in or on a frame containing an IGU(e.g., mounted in or on a mullion, the horizontal sash of a frame)included in the zone. In some other embodiments, electrochromic windowsin a zone that includes the windows on a single side of the building maybe controlled by a window controller or controllers that receive anoutput signal from a transmissivity sensor.

In some embodiments, a sensor (e.g., photosensor) may provide an outputsignal to a window controller to control the electrochromic windows 505of a first zone (e.g., a master control zone). The window controller mayalso control the electrochromic windows 505 in a second zone (e.g., aslave control zone) in the same manner as the first zone. In some otherembodiments, another window controller may control the electrochromicwindows 505 in the second zone in the same manner as the first zone.

In some embodiments, a building manager, occupants of rooms in thesecond zone, or other person may manually instruct (using a tint orclear command or a command from a user console of a BMS, for example)the electrochromic windows in the second zone (i.e., the slave controlzone) to enter a tint level such as a colored state (level) or a clearstate. In some embodiments, when the tint level of the windows in thesecond zone is overridden with such a manual command, the electrochromicwindows in the first zone (i.e., the master control zone) remain undercontrol of the window controller receiving output from thetransmissivity sensor. The second zone may remain in a manual commandmode for a period of time and then revert back to be under control ofthe window controller receiving output from the transmissivity sensor.For example, the second zone may stay in a manual mode for one hourafter receiving an override command, and then may revert back to beunder control of the window controller receiving output from thetransmissivity sensor.

In some embodiments, a building manager, occupants of rooms in the firstzone, or other person may manually instruct (using a tint command or acommand from a user console of a BMS, for example) the windows in thefirst zone (i.e., the master control zone) to enter a tint level such asa colored state or a clear state. In some embodiments, when the tintlevel of the windows in the first zone is overridden with such a manualcommand, the electrochromic windows in the second zone (i.e., the slavecontrol zone) remain under control of the window controller receivingoutputs from the exterior sensor. The first zone may remain in a manualcommand mode for a period of time and then revert back to be undercontrol of window controller receiving output from the transmissivitysensor. For example, the first zone may stay in a manual mode for onehour after receiving an override command, and then may revert back to beunder control of the window controller receiving output from thetransmissivity sensor. In some other embodiments, the electrochromicwindows in the second zone may remain in the tint level that they are inwhen the manual override for the first zone is received. The first zonemay remain in a manual command mode for a period of time and then boththe first zone and the second zone may revert back to be under controlof the window controller receiving output from the transmissivitysensor.

Any of the methods described herein of control of a tintable window,regardless of whether the window controller is a standalone windowcontroller or is interfaced with a building network, may be used controlthe tint of a tintable window.

V. Wireless or Wired Communication

In some embodiments, window controllers described herein includecomponents for wired or wireless communication between the windowcontroller, sensors, and separate communication nodes. Wireless or wiredcommunications may be accomplished with a communication interface thatinterfaces directly with the window controller. Such interface could benative to the microprocessor or provided via additional circuitryenabling these functions.

A separate communication node for wireless communications can be, forexample, another wireless window controller, an end, intermediate, ormaster window controller, a remote control device, or a BMS. Wirelesscommunication is used in the window controller for at least one of thefollowing operations: programming and/or operating the electrochromicwindow 505, collecting data from the EC window 505 from the varioussensors and protocols described herein, and using the electrochromicwindow 505 as a relay point for wireless communication. Data collectedfrom electrochromic windows 505 also may include count data such asnumber of times an EC device has been activated, efficiency of the ECdevice over time, and the like. These wireless communication features isdescribed in more detail below.

In one embodiment, wireless communication is used to operate theassociated electrochromic windows 505, for example, via an infrared(IR), and/or radio frequency (RF) signal. In certain embodiments, thecontroller will include a wireless protocol chip, such as Bluetooth,EnOcean, WiFi, Zigbee, and the like. Window controllers may also havewireless communication via a network. Input to the window controller canbe manually input by an end user at a wall switch, either directly orvia wireless communication, or the input can be from a BMS of a buildingof which the electrochromic window is a component.

In one embodiment, when the window controller is part of a distributednetwork of controllers, wireless communication is used to transfer datato and from each of a plurality of electrochromic windows via thedistributed network of controllers, each having wireless communicationcomponents. For example, referring again to FIG. 15 , master networkcontroller 1103, communicates wirelessly with each of intermediatenetwork controllers 1105 a and 1105 b, which in turn communicatewirelessly with end controllers 1110, each associated with anelectrochromic window. Master network controller 1103 may alsocommunicate wirelessly with the BMS 1100. In one embodiment, at leastone level of communication in the window controller is performedwirelessly.

In some embodiments, more than one mode of wireless communication isused in the window controller distributed network. For example, a masterwindow controller may communicate wirelessly to intermediate controllersvia WiFi or Zigbee, while the intermediate controllers communicate withend controllers via Bluetooth, Zigbee, EnOcean, or other protocol. Inanother example, window controllers have redundant wirelesscommunication systems for flexibility in end user choices for wirelesscommunication.

Wireless communication between, for example, master and/or intermediatewindow controllers and end window controllers offers the advantage ofobviating the installation of hard communication lines. This is alsotrue for wireless communication between window controllers and BMS. Inone aspect, wireless communication in these roles is useful for datatransfer to and from electrochromic windows for operating the window andproviding data to, for example, a BMS for optimizing the environment andenergy savings in a building. Window location data as well as feedbackfrom sensors are synergized for such optimization. For example, granularlevel (window-by-window) microclimate information is fed to a BMS inorder to optimize the building's various environments.

VI. Example of System for Controlling Functions of Tintable Windows

FIG. 17 is a block diagram of components of a system 1400 forcontrolling functions (e.g., transitioning to different tint levels) ofone or more tintable windows of a building (e.g., building 1101 shown inFIG. 15 ), according to embodiments. System 1400 may be one of thesystems managed by a BMS (e.g., BMS 1100 shown in FIG. 15 ) or mayoperate independently of a BMS.

System 1400 includes a master window controller 1402 that can sendcontrol signals to the tintable windows to control its functions. System1400 also includes a network 1410 in electronic communication withmaster window controller 1402. The predictive control logic, othercontrol logic and instructions for controlling functions of the tintablewindow(s), and/or sensor data may be communicated to the master windowcontroller 1402 through the network 1410. Network 1410 can be a wired orwireless network (e.g. cloud network). In one embodiment, network 1410may be in communication with a BMS to allow the BMS to send instructionsfor controlling the tintable window(s) through network 1410 to thetintable window(s) in a building.

System 1400 also includes EC devices 400 of the tintable windows (notshown) and wall switches 1490, which are both in electroniccommunication with master window controller 1402. In this illustratedexample, master window controller 1402 can send control signals to ECdevice(s) 400 to control the tint level of the tintable windows havingthe EC device(s) 400. Each wall switch 1490 is also in communicationwith EC device(s) 400 and master window controller 1402. An end user(e.g., occupant of a room having the tintable window) can use the wallswitch 1490 to control the tint level and other functions of thetintable window having the EC device(s) 400.

In FIG. 17 , master window controller 1402 is depicted as a distributednetwork of window controllers including a master network controller1403, a plurality of intermediate network controllers 1405 incommunication with the master network controller 1403, and multiplepluralities of end or leaf window controllers 1410. Each plurality ofend or leaf window controllers 1410 is in communication with a singleintermediate network controller 1405. Although master window controller1402 is illustrated as a distributed network of window controllers,master window controller 1402 could also be a single window controllercontrolling the functions of a single tintable window in otherembodiments. The components of the system 1400 in FIG. 17 may be similarin some respects to components described with respect to FIG. 15 . Forexample, master network controller 1403 may be similar to master networkcontroller 1103 and intermediate network controllers 1405 may be similarto intermediate network controllers 1105. Each of the window controllersin the distributed network of FIG. 17 may include a processor (e.g.,microprocessor) and a computer readable medium in electricalcommunication with the processor.

In FIG. 17 , each leaf or end window controller 1410 is in communicationwith EC device(s) 400 of a single tintable window to control the tintlevel of that tintable window in the building. In the case of an IGU,the leaf or end window controller 1410 may be in communication with ECdevices 400 on multiple lites of the IGU control the tint level of theIGU. In other embodiments, each leaf or end window controller 1410 maybe in communication with a plurality of tintable windows. The leaf orend window controller 1410 may be integrated into the tintable window ormay be separate from the tintable window that it controls. Leaf and endwindow controllers 1410 in FIG. 17 may be similar to the end or leafcontrollers 1110 in FIG. 15 and/or may also be similar to windowcontroller 450 described with respect to FIG. 4 .

Each wall switch 1490 can be operated by an end user (e.g., occupant ofthe room) to control the tint level and other functions of the tintablewindow in communication with the wall switch 1490. The end user canoperate the wall switch 1490 to communicate control signals to the ECdevices 400 in the associated tintable window. These signals from thewall switch 1490 may override signals from master window controller 1402in some cases. In other cases (e.g., high demand cases), control signalsfrom the master window controller 1402 may override the control signalsfrom wall switch 1490. Each wall switch 1490 is also in communicationwith the leaf or end window controller 1410 to send information aboutthe control signals (e.g. time, date, tint level requested, etc.) sentfrom wall switch 1490 back to master window controller 1402. In somecases, wall switches 1490 may be manually operated. In other cases, wallswitches 1490 may be wirelessly controlled by the end user using aremote device (e.g., cell phone, tablet, etc.) sending wirelesscommunications with the control signals, for example, using infrared(IR), and/or radio frequency (RF) signals. In some cases, wall switches1490 may include a wireless protocol chip, such as Bluetooth, EnOcean,WiFi, Zigbee, and the like. Although wall switches 1490 depicted in FIG.17 are located on the wall(s), other embodiments of system 1400 may haveswitches located elsewhere in the room.

VII. Another Example of Predictive Control Logic

FIG. 18 is a block diagram depicting predictive control logic for amethod of controlling the tint level of one or more tintable windows(e.g., electrochromic windows) in different zones of a building,according to embodiments. This logic makes predictive determinations ata time in the future that accounts for the transition time of the ECdevices 400 in the tintable windows. This predictive control logic canbe employed by components of system 1400 described with respect to FIG.17 or by components of systems of other disclosed embodiments. In theillustrated example, a portion of the predictive control logic isperformed by window controller 1410, another portion is performed bynetwork controller 1408, and the logic in Module 1 1406 is performed bya separate component from the window controller 1410 and networkcontroller 1408. Alternatively, Module 1 1406 may be separate logic thatmay or may not be loaded onto the window controller 1410.

In FIG. 18 , the portions of the predictive control logic employed bywindow controller 1410 and Module 1 1406 are managed by BMS 1407. BMS1407 may be similar to BMS 1100 described with respect to FIG. 15 . BMS1407 is in electronic communication with window controller 1410 througha BACnet Interface 1408. In other embodiments, other communicationsprotocol may be used. Although not shown in FIG. 18 , Module 1 1406 isalso in communication with BMS 1407 through BACnet Interface 1408. Inother embodiments, the predictive control logic depicted in FIG. 18 mayoperate independently of a BMS.

Network controller 1408 receives sensor readings from one or moresensors (e.g., an outside light sensor) and may also convert the sensorreading into W/m². The network controller 1408 is in electroniccommunication with the window controller 1410 via either CANbus orCANOpen protocol. The network controller 1408 communicates the convertedsensor readings to the window controller 1410. Network controller 1408may be similar to either the intermediate network controller 1405 or themaster network controller 1403 of FIG. 17 .

In FIG. 18 , the portion of the predictive control logic employed bywindow controller 1410 includes a master scheduler 1502. The masterscheduler 1502 includes logic that allows a user (e.g., buildingadministrator) to prepare a schedule that can use different types ofcontrol programs at different times of day and/or dates. Each of thecontrol programs includes logic for determining a tint level based on ormore independent variables. One type of control program is simply a purestate. A pure state refers to particular level of tint (e.g.,transmissivity=40%) that is fixed during a certain time period,regardless of other conditions. For example, the building manager mayspecify that the windows are clear after 3 PM every day. As anotherexample, building manager may specify a pure state for the time periodbetween the hours of 8 PM to 6 AM every day. At other times of day, adifferent type of control program may be employed, for example, oneemploying a much greater level of sophistication. One type of controlprogram offering a high level of sophistication. For example, a highlysophisticated control program of this type includes predictive controllogic described in reference to FIG. 18 and may include theimplementation of one or more of the logic Modules A, B, and C of Module1 1406. As another example, another highly sophisticated control programof this type includes predictive control logic described in reference toFIG. 18 and may include the implementation of one or more of the logicModules A, B, and C of Module 1 1406 and Module D described later inthis Section VII. As another example, another highly sophisticatedcontrol program of this type is the predictive control logic describedin reference to FIG. 7 and includes full multi-module implementation oflogic Modules A, B, and C described in reference to FIGS. 8, 9, and 12 .In this example, the predictive control logic uses sensor feedback inModule C and solar information in Modules A and B. Another example of ahighly sophisticated control program is the predictive control logicdescribed in reference to FIG. 7 with partial logic moduleimplementation of one or two of the logic Modules A, B, and C describedin reference to FIGS. 8, 9, and 12 . Another type of control program isa threshold control program that relies on feedback from one or moresensors (e.g., photosensors) and adjusts the tint level accordinglywithout regard to solar position. One of the technical advantages ofusing master scheduler 1502 is that the user can select and schedule thecontrol program (method) being used to determine the tint level.

Master scheduler 1502 runs the control programs in the scheduleaccording to time in terms of the date and time of day based on a24-hour day. Master scheduler 1502 may determine the date in terms of acalendar date and/or the day of the week based on a 7-day week with fiveweekdays (Monday through Friday) and two weekend days (Saturday andSunday). Master scheduler 1502 may also determine whether certain daysare holidays. Master scheduler 1502 may automatically adjust the time ofday for daylight savings time based on the location of the tintablewindows, which is determined by site data 1506.

In one embodiment, master scheduler 1502 may use a separate holidayschedule. The user may have determined which control program(s) to useduring the holiday schedule. The user may determine which days will beincluded in the holiday schedule. Master scheduler 1502 may copy thebasic schedule set up by the user and allow the user to set up theirmodifications for the holidays in the holiday schedule.

When preparing the schedule employed by master scheduler 1502, the usermay select the zone or zones (Zone Selection) of the building where theselected program(s) will be employed. Each zone includes one or moretintable windows. In some cases, a zone may be an area associated with aspace type (e.g., offices having a desk at a particular position,conference rooms, etc.) or may be associated with multiple space types.For example, the user may select Zone 1 having offices to: 1) Mondaythrough Friday: heat up at 8 am in morning to 70 degrees and turn on airconditioning to at 3 pm in afternoon to keep temperature in offices to80 degrees, and then turn off all air conditioning, and heat at 5 pmduring weekdays, and 2) (Saturday and Sunday) turn off heat and airconditioning. As another example, the user may set Zone 2 having aconference room to run the predictive control logic of FIG. 18 includingfull-module implementation of Module 1 using all of the logic Module A,B, and C. In another example, the user may select a Zone 1 havingconference rooms to run Module 1 from 8 AM to 3 PM and a thresholdprogram or pure state after 3 PM. In other cases, a zone may be theentire building or may be one or more windows in a building.

When preparing the schedule with programs that may use sensor input, theuser may also be able to select the sensor or sensors used in theprograms. For example, the user may select a sensor located on the roofor a sensor located near or at the tintable window. As another example,the user may select an ID value of a particular sensor.

The portion of the predictive control logic employed by windowcontroller 1410 also includes a user interface 1504 in electroniccommunication with master scheduler 1502. User interface 1504 is also incommunication with site data 1506, zone/group data 1508, and sense logic1516. The user may input their schedule information to prepare theschedule (generate a new schedule or modify an existing schedule) usinguser interface 1504. User interface 1504 may include an input devicesuch as, for example, a keypad, touchpad, keyboard, etc. User interface1504 may also include a display to output information about the scheduleand provide selectable options for setting up the schedule. Userinterface 1504 is in electronic communication with a processor (e.g.,microprocessor), which is in electronic communication with a computerreadable medium (CRM). Both the processor and CRM are components of thewindow controller 1410. The logic in master scheduler 1502 and othercomponents of the predictive control logic may be stored on the computerreadable medium of window controller 1410.

The user may enter their site data 1506 and zone/group data 1508 usinguser interface 1504. Site data 1506 includes the latitude, longitude,and GMT Offset for the location of the building. Zone/group dataincludes the position, dimension (e.g., window width, window height,sill width, etc.), orientation (e.g., window tilt), external shading(e.g., overhang depth, overhang location above window, left/right fin toside dimension, left/right fin depth, etc.), datum glass SHGC, andoccupancy lookup table for the one or more tintable windows in each zoneof the building. In FIG. 18 , site data 1506 and zone/group data 1508 isstatic information (i.e. information that is not changed by componentsof the predictive control logic). In other embodiments, this data may begenerated on the fly. Site data 1506 and zone/group data 1508 may bestored on a computer readable medium of the window controller 1410.

When preparing (or modifying) the schedule, the user selects the controlprogram that master scheduler 1502 will run at different time periods ineach of the zones of a building. In some cases, the user may be able toselect from multiple control programs. In one such case, the user mayprepare a schedule by selecting a control program from a list of allcontrol programs (e.g., menu) displayed on user interface 1405. In othercases, the user may have limited options available to them from a listof all control programs. For example, the user may have only paid forthe use of two control programs. In this example, the user would only beable to select one of the two control programs paid for by the user.

An example of a user interface 1405 is shown in FIG. 19 . In thisillustrated example, the user interface 1405 is in the form of a tablefor entering schedule information used to generate or change a scheduleemployed by the master scheduler 1502. For example, the user can enterthe time period into the table by entering start and stop times. Theuser can also select a sensor used by a program. The user can also enterSite data 1506 and Zone/Group Data 1508. The user can also select anoccupancy lookup table to be used by selecting “Sun Penetration Lookup.”

Returning to FIG. 18 , the portion of the predictive control logicemployed by window controller 1410 also includes time of day (lookahead) logic 1510. Time of day (look ahead) logic 1510 determines a timein the future used by predictive control logic to make its predictivedeterminations. This time in the future accounts for time needed totransition the tint level of the EC devices 400 in the tintable windows.By using a time that accounts for transition time, the predictivecontrol logic can predict a tint level appropriate for the future timeat which time the EC devices 400 will have had the time to transition tothe tint level after receiving the control signal. Time of day portion1510 may estimate the transition time of EC device(s) in arepresentative window based on information about the representativewindow (e.g., window dimension, etc.) from the Zone/Group Data. Time ofday logic 1510 may then determine the future time based on thetransition time and the current time. For example, the future time maybe equal to or greater than the current time added to the transitiontime.

The Zone/Group Data includes information about the representative windowof each zone. In one case, the representative window may be one of thewindows in the zone. In another case, the representative window may be awindow having average properties (e.g., average dimensions) based onaveraging all the properties from all the windows in that zone.

The predictive control logic employed by window controller 1410 alsoincludes a solar position calculator 1512. Solar position calculator1512 includes logic that determines the position of the sun, Sun azimuthand Sun altitude, at an instance in time. In FIG. 18 , solar positioncalculator 1512 makes its determinations based on a future instance intime received from time of day logic 1510. Solar position calculator1512 is in communication with time of day portion 1510 and site data1506 to receive the future time, latitude and longitude coordinates ofthe building, and other information that may be needed to make itscalculation(s), such as the solar position calculation. Solar positioncalculator 1512 may also perform one or more determinations based on thecalculated solar position. In one embodiment, solar position calculator1512 may calculate clear sky irradiance or make other determinationsfrom Modules A, B, and C of Module 1 1406.

The control logic employed by window controller 1410 also includesschedule logic 1518, which is in communication with the sense logic1516, the user interface 1405, the solar position calculator 1512, andModule 1 1406. The schedule logic 1518 includes logic that determineswhether to use the tint level passing through the intelligence logic1520 from Module 1 1406 or use another tint level based on otherconsiderations. For example, as sunrise and sunset times changethroughout the year, the user may not want to reprogram the schedule toaccount for these changes. The schedule logic 1518 may use the sunriseand sunset times from the solar position calculator 1512 to set anappropriate tint level before sunrise and after sunset without requiringthe user to reprogram the schedule for these changing times. Forexample, the schedule logic 1508 may determine that according to thesunrise time received from the solar position calculator 1512 the sunhas not risen and that a pre-sunrise tint level should be used insteadof the tint level passed from Module 1 1406. The tint level determinedby the schedule logic 1518 is passed to sense logic 1516.

Sense logic 1516 is in communication with override logic 1514, schedulelogic 1518, and user interface 1405. Sense logic 1516 includes logicthat determines whether to use the tint level passed from schedule logic1516 or use another tint level based on the sensor data received throughthe BACnet interface 1408 from one or more sensors. Using the example inthe paragraph above, if schedule logic 1518 determines that it the sunhas not risen and passed a pre-sunrise tint level and the sensor datashows that the sun has actually risen, then sense logic 1516 would usethe tint level passed from Module 1 1406 through schedule logic 1518.The tint level determined by sense logic 1516 is passed to overridelogic 1514.

BMS 1407 and network controller 1408 are also in electroniccommunication with a demand response (e.g., utility company) to receivesignals communicating the need for a high demand (or peak load)override. In response to receiving these signals from the demandresponse, BMS 1407 and/or network controller 1408 may send instructionsthrough BACnet Interface 1408 to override logic 1514 that will processthe override information from the demand response. Override logic 1514is in communication with BMS 1407 and network controller 1408 throughthe BACnet Interface 1408, and also in communication with sense logic1516.

Override logic 1514 allows for certain types of overrides to disengagepredictive control logic and use an override tint level based on anotherconsideration. Some examples of types of overrides that may disengagepredictive control logic include a high demand (or peak load) override,manual override, vacant room override, etc. A high demand (or peak load)override defines a tint level from the demand response. For a manualoverride, an end user may enter the override value at a wall switch 1490(shown in FIG. 17 ) either manually or through a remote device. A vacantroom override defines an override value based on a vacant room (i.e. nooccupant in the room). In this case, the sense logic 1516 may receivesensor data from a sensor (e.g., motion sensor) indicating that the roomis vacant and sense logic 1516 may determine an override value and relaythe override value to override logic 1514. The override logic 1514 canreceive an override value and determine whether to use the overridevalue or use another value, such as another override value received froma source having higher priority (i.e., demand response). In some cases,the override logic 1514 may operate by steps similar to the overridesteps 630, 640, and 650 described with respect to FIG. 7 .

The control logic employed by window controller 1410 also includesintelligence logic 1520 that can shut off one or more of Modules A 1550,B 1558 and C 1560. In one case, the intelligence logic 1520 may be usedto shut off one or more Modules where the user has not paid for thoseModules. Intelligence logic 1520 may prevent the use of certain moresophisticated features such as the penetration calculation made inModule A. In such cases, a basic logic is used that “short-circuits” thesolar calculator information and uses it to calculate tint levels,possibly with the assistance of one or more sensors. This tint levelfrom the basic logic is communicated to schedule logic 1518.

Intelligence logic 1520 can shut off one or more of the Modules (ModuleA 1550, Module B 1558 and Module C 1560) by diverting certaincommunications between the window controller 1410 and Module 1 1406. Forexample, the communication between the solar position calculator 1512and Module A 1550 goes through intelligence logic 1520 and can bediverted to schedule logic 1518 by intelligence logic 1520 to shut offModule A 1550, Module B 1558 and Module C 1560. As another example, thecommunication of tint level from Module A at 1552 to the Clear SkyIrradiance calculations at 1554 goes through intelligence logic 1520 andcan be diverted instead to schedule logic 1518 to shut off Module B 1558and Module C 1560. In yet another example, the communication of tintlevel from Module B at 1558 to Module C 1560 goes through intelligencelogic 1520 and can be diverted to schedule logic 1518 to shut off ModuleC 1560.

Module 1 1406 includes logic that determines and returns a tint level tothe schedule logic 1518 of window controller 1410. The logic predicts atint level that would be appropriate for the future time provided by thetime of day portion 1510. The tint level is determined for arepresentative tintable window associated with each of the zones in theschedule.

In FIG. 18 , Module 1 1406 includes Module A 1550, Module B 1558 andModule C 1560, which may have some steps that are similar in somerespects to the steps performed in Modules A, B, and C as described withrespect to FIGS. 8, 9, 12 and 13 . In another embodiment, Module 1 1406may be comprised of Modules A, B, and C as described with respect toFIGS. 8, 9, 12 and 13 . In yet another embodiment, Module 1 1406 may becomprised of Modules A, B, and C described with respect to FIG. 14 .

In FIG. 18 , Module A 1550 determines the penetration depth through therepresentative tintable window. The penetration depth predicted byModule A 1550 is at the future time. Module A 1550 calculates thepenetration depth based on the determined position of the sun (i.e. Sunazimuth and Sun altitude) received from the solar position calculator1512 and based on the position of the representative tintable window,acceptance angle, dimensions of the window, orientation of the window(i.e. direction facing), and the details of any exterior shadingretrieved from the zone/group data 1508.

Module A 1550 then determines the tint level that will provide occupantcomfort for the calculated penetration depth. Module A 1550 uses theoccupancy lookup table retrieved from the zone/group data 1508 todetermine the desired tint level for the space type associated with therepresentative tintable window, for the calculated penetration depth,and for the acceptance angle of the window. Module A 1550 outputs a tintlevel at step 1552.

The maximum clear sky irradiance incident the representative tintablewindow is predicted for all times in the logic 1554. The clear skyirradiance at the future time is also predicted based on the latitudeand longitude coordinates of the building and the representative windoworientation (i.e. direction the window is facing) from the site data1506 and the zone/group data 1508. These clear sky irradiancecalculations can be performed by the sun position calculator 1512 inother embodiments.

Module B 1556 then calculates new tint levels by incrementallyincreasing the tint level. At each of these incremental steps, theInside Irradiance in the room based on the new tint level is determinedusing the equation: Inside Irradiance=Tint level SHGC×Clear SkyIrradiance. Module B selects the tint level where Inside Irradiance isless than or equal to Datum Inside Irradiance (Datum SHGC×Max. Clear skyIrradiance) and the tint level is not lighter than Tint Level from A.Module B 1556 outputs the selected tint level from B. From the Tintlevel from B, logic 1558 calculates the outside irradiance and thecalculated skylight irradiance.

Module C 1560 makes a determination of whether a sensor reading ofirradiance is less than the clear sky irradiance. If the determinationresult is YES, then the tint level being calculated is madeincrementally lighter (clearer) until the value matches or is less thana tint level calculated as Sensor Reading×Tint Level SHGC, but not toexceed datum inside Irradiance from B. If the determination result isNO, then the tint level being calculated is made darker in incrementalsteps as done in Module B 1556. Module C outputs the tint level. Logic1562 determines that the tint level from Module C is the final tintlevel and returns this final tint level (Tint level from Module C) tothe schedule logic 1518 of the window controller 1410.

In one aspect, Module 1 1406 may also include a fourth Module D that canpredict the effects of the surrounding environment on the intensity anddirection of sunlight through the tintable windows in the zone. Forexample, a neighboring building or other structure may shade thebuilding and block some light from passing through the windows. Asanother example, reflective surfaces (e.g., surfaces having snow, water,etc.) from a neighboring building or other surfaces in the environmentsurrounding the building may reflect light into the tintable windows.This reflected light can increase the intensity of light into thetintable windows and cause glare in the occupant space. Depending on thevalues of the intensity and direction of sunlight predicted by Module D,Module D may modify the tint level determined from Modules A, B, and Cor may modify certain determinations from Modules A, B, and C such as,for example, the penetration depth calculation or the acceptance angleof the representative window in the Zone/Group data.

In some cases, a site study may be conducted to determine theenvironment surrounding the building and/or one or more sensors may beused to determine the effects of the surrounding environment.Information from the site study may be static information based onpredicting the reflectance and shading (surrounding) effects for a timeperiod (e.g., a year), or may be dynamic information that can be updatedon a periodic basis or other timed basis. In one case, Module D may usethe site study to modify the standard acceptance angle and associated θ₁and θ₂ (shown in FIG. 20 ) of the representative window of each zoneretrieved from the Zone/group data. Module D may communicate thismodified information regarding the representative windows other modulesof the predictive control logic. The one or more sensors employed byModule D to determine the effects of the surrounding environment may bethe same sensors used by other modules (e.g., by Module C) or may bedifferent sensors. These sensors may be specifically designed todetermine the effects of the surrounding environment for Module D.

To operate the predictive control logic shown in FIG. 18 , the userfirst prepares a schedule with details of the times and dates, zones,sensors, and programs used. Alternatively, a default schedule may beprovided. Once the schedule is in place (stored), at certain timeintervals (every 1 minute, 5 minutes, 10 minutes, etc.) the time of dayportion 1510 determines a future time of day based on the current timeand the transition time of the EC device(s) 400 in the representativewindow or each zone in the schedule. Using the zone/group data 1508 andsite data 1506, the solar position calculator 1512 determines the solarposition at the future (look ahead) time for each representative windowof each zone in the schedule. Based on the schedule prepared by theuser, the intelligence logic 1520 is used to determine which program toemploy for each zone in the schedule. For each zone, the scheduledprogram is employed and predicts an appropriate tint level for thatfuture time. If there is an override in place, an override value will beused. If there is no override in place, then the tint level determinedby the program will be used. For each zone, the window controller 1410will send control signals with the zone-specific tint level determinedby the scheduled program to the associated EC device(s) 400 totransition the tint level of the tintable window(s) in that zone by thefuture time.

VIII. Example of Occupancy Lookup Table

FIG. 20 is an illustration including an example of an occupancy lookuptable. The tint level in the table is in terms of T_(vis) (visibletransmission). The table includes different tint levels (T_(vis) values)for different combinations of calculated penetration depth values (2feet, 4 feet, 8 feet, and 15 feet) for a particular space type and whenthe sun angle θ_(Sun) is between the acceptance angle of the windowbetween θ₁=30 degrees and θ₂=120 degrees. The table is based on fourtint levels including 4% (lightest), 20%, 40%, and 63%. FIG. 20 alsoshows a diagram of a desk near a window and the acceptance angle of thewindow to sunlight having an angle θ_(Sun) between the angle of θ₁ andθ₂. This diagram shows the relationship between the sun angle θ_(Sun)and the location of the desk. When the angle of the sun θ_(Sun) isbetween the angle of acceptance between θ₁ and θ₂, then the sunlightcould strike the surface of the desk. If the sun angle θ_(Sun) isbetween the acceptance angle between θ₁ and θ₂ (If θ₁<θ_(Sun)<θ₂) andthe penetration depth meets the criteria to tint the window, then thattint level determined by the occupancy lookup table is sent to thewindow controller, which sends control signals to the EC devices in thewindow to transition the window to the determined tint level. These twoangles θ₁ and θ₂ can be calculated or measured for each window, andstored in the zone/group data 1508 with the other window parameters forthat zone.

FIGS. 21A, 21B, and 21C are plan views of a portion of a building 2100,according to embodiments. Building 2100 may be similar in some respectsto the building 1101 in FIG. 15 and the rooms in building 2100 may besimilar in some respects to the room 500 described in FIGS. 5, 6A, 6B,and 6C. The portion of building 2100 includes three different spacetypes including: a desk in an office, a group of cubicles, and aconference room in the building 2100. FIGS. 21A, 21B, and 21C show thesun at different angles θ_(Sun). These figures also illustrate thedifferent acceptance angles of the different types of windows inbuilding 2100. For example, the conference room with the largest windowwill have the largest acceptance angle allowing the most light into theroom. In this example, the T_(vis) values in an associated occupancylookup table may be relatively low (low transmissivity) for theconference room. If however, a similar window having the same acceptanceangle was instead in a solarium, then the T_(vis) values in anassociated occupancy lookup table may be higher values (highertransmissivity) to allow for more sunlight to enter the room.

IX. Subsystems

FIG. 22 is a block diagram of subsystems that may be present in windowcontrollers used to control the tint level or more tintable windows,according to embodiments. For example, window controllers depicted inFIG. 17 may have a processor (e.g., microprocessor) and a computerreadable medium in electronic communication with the processor.

The various components described in the Figures of other Sections mayoperate using one or more of the subsystems in this Section tofacilitate the functions described herein. Any of the components in theFigures may use any suitable number of subsystems to facilitate thefunctions described herein. Examples of such subsystems and/orcomponents are shown in a FIG. 22 . The subsystems shown in FIG. 22 areinterconnected via a system bus 2625. Additional subsystems such as aprinter 2630, keyboard 2632, fixed disk 2634 (or other memory comprisingcomputer readable media), display 2430, which is coupled to displayadapter 2638, and others are shown. Peripherals and input/output (I/O)devices, which couple to I/O controller 2640, can be connected to thecomputer system by any number of means known in the art, such as serialport 2642. For example, serial port 2642 or external interface 2644 canbe used to connect the computer apparatus to a wide area network such asthe Internet, a mouse input device, or a scanner. The interconnectionvia system bus allows the processor 2410 to communicate with eachsubsystem and to control the execution of instructions from systemmemory 2646 or the fixed disk 2634, as well as the exchange ofinformation between subsystems. The system memory 2646 and/or the fixeddisk 2634 may embody a computer readable medium. Any of these elementsmay be present in the previously described features.

In some embodiments, an output device such as the printer 2630 ordisplay 2430 of one or more systems can output various forms of data.For example, the system 1400 may output schedule information on adisplay to a user.

X. Filter(s) for Making Tinting Decisions Based on Rapidly ChangingConditions

In some systems, once a decision is made to tint a tintable window to aparticular end state, the window is committed to complete thattransition until reaching the end state. Such systems cannot adjust thefinal tint state during transition, and can only wait until transitionis complete. If an unsuitable end tint state is selected by thesesystems, the window is committed to this unsuitable tint level duringthe transition cycle and additionally any time that it takes totransition the window to a more appropriate tint level. Since tint/cleartimes take 5 to 30 minutes, for example, an unsuitable selection couldtie up a window in an inappropriate tint level for a substantial periodof time which could make conditions uncomfortable for the occupant.

Rapidly changing conditions (e.g., weather change such as intermittentclouds on a sunny day, a fog bank moving in or out, fog burning off tosunshine, etc.) combined with long transition times can cause somecontrol methods to “bounce” between end tint states. In addition, suchcontrol methods can decide on an end tint state based on a conditionthat changes immediately after the method commits to the transition, inwhich case the window is locked into an unsuitable tint level until thetransition is complete. For example, consider a mostly sunny day withdappled clouds. A control method may react to a drop in illuminationvalues when a cloud passes by and when the values rebound, glareconditions could exist. Even though the cloud passes by quickly, thewindow is committed to transitioning to the inappropriately low end tintstate for at least the duration of the transition cycle. During thistime, solar radiation enters the room which could also make ituncomfortably warm for the occupant.

An example of a rapidly changing weather condition is a foggy morningthat breaks into sunshine. FIG. 23 is a graph of sensor illuminationreadings taken on a day that begins with fog that rapidly burns off tosunshine later in the day. Certain control systems would determine a lowtint level at the beginning of the day based on the low illuminationreadings during the morning fog. This low tint level would beinappropriately low for the period of time when the weather quicklytransitions to clear sky after the fog burns off In this example, a moreappropriate higher tint level for the clear sky may not be determinedfor a substantial period of time (e.g., 35-45 minutes after the fogburns off). Another example of a rapidly changing condition is the onsetof a reflection from an object such as, for example, a parked car or anadjacent building's window.

Certain embodiments described herein include window control methods thatuse multiple filters to make tinting decisions that address rapidlychanging conditions. In certain cases, these filters can be used todetermine a more appropriate end tint state during a current transitioncycle to adjust the tint level of the window to a level appropriate forcurrent conditions. One type of filter is a box car filter (sometimescalled a sliding window filter), which employs multiple sensor readingsof illumination values sampled over time. A box car value is acalculated central tendency (e.g., mean, average, or median) of anumber, n, of contiguous sensor samples (readings of illumination valuesmeasured over time). Typically, the sensor samples are measurements ofexternal radiation (e.g., by a sensor located on the outside of abuilding). In some cases, a single sensor can be used to take sensorsamples for multiple windows such as windows in a particular zone of abuilding. Sensors generally take readings on a periodic basis at auniform frequency based on a sampling rate. For example, a sensor maytake samples at a sampling rate in the range of about one sample every30 seconds to one sample every twenty minutes. In one embodiment, asensor takes samples at a rate of one sample every minute. In somecases, one or more timers may also be used by the control method tomaintain the tint at a current setting determined using a box car value.

In certain aspects, control methods use a short term box car and one ormore long term box cars (filters) to make tinting decisions. A short boxcar (e.g., box car that employs sample values taken over 10 minutes, 20minutes, 5 minutes, etc.) is based on a smaller number of sensor samples(e.g., n=1, 2, 3, . . . 10, etc.) relative to the larger number ofsensor samples (e.g., n=10, 20, 30, 40, etc.) in a long box car (e.g.,box car that employs sample values taken over 1 hour, 2 hours, etc.). Abox car (illumination) value may be based on a mean, average, median orother representative value of the sample values in the box car. In onecase, a short box car value is a median value of sensor samples and along box car value is an average value of sensor samples. Since a shortbox car value is based on a smaller number of sensor samples, short boxcar values more closely follow the current sensor readings than long boxcar values. Thus, short box car values respond to rapidly changingconditions more quickly and to a greater degree than the long box carvalues. Although both the calculated short and long box car values lagbehind the sensor readings, short box car values will lag behind to alesser extent than the long box car values.

In many cases, short box car values react more quickly than long box carvalues to current conditions. Based on this, a long box car filter canbe used to smooth the response of the window controller to frequentshort duration weather fluctuations, while a short box car does notsmooth as well but responds more quickly to rapid and significantweather changes. In the case of a passing cloud condition, a controlalgorithm using only a long box car value will not react quickly to thecurrent passing cloud condition. In this case, the long box car valueshould be used in tinting decisions to determine an appropriate hightint level. In the case of a fog burning off condition, it may be moreappropriate to use a short term box car value in tinting decisions. Inthis case, the short term box car reacts more quickly to a new sunnycondition after the fog burns off. By using the short term box car valueto make tinting decisions, the tintable window quickly adjusts to thesunny condition and keeps the occupant comfortable as the fog rapidlyburns off.

In certain aspects, control methods evaluate the difference between theshort and long term box car values to determine which box car value touse in tinting decisions. For example, when the difference (short termbox car value minus long term box car value) is positive and exceeds afirst (positive) threshold (e.g., 20 W/m²), the value of the short termbox car may be used to calculate a tint level (state). A positive valuetypically corresponds to a transition to brightening (i.e. increasingradiant intensity outside the window). In some implementations, a firsttimer is set when the positive threshold is exceeded, in which case acurrently calculated tint level is maintained for a prescribed amount oftime of the first timer. Using the first timer will favor glare controlby holding the window in a more tinted state and preventing too manytransitions that may annoy an occupant. On the other hand, when thedifference between the short car and long car values is less than thefirst positive threshold or is negative, the long term box value is usedto calculate the next tint state. And if the difference is negative andmore negative than a second negative threshold, then a second timer maybe set. In certain cases, the positive threshold values are in the rangeof about 1 Watts/m² to 200 Watts/m² and the negative threshold valuesare in the range of about −200 Watts/m² to −1 Watts/m². The calculatedtint value based on the long box car is maintained during a prescribedamount of the time of the second timer. Once the control methoddetermines which box car value to use, the method will make tintingdecisions based on whether the box car value is above an upper limit,below a lower limit, or between the upper and lower limits. If above theupper limit, Modules A and B (or just B in some cases) are used todetermine tint level change. If above the lower limit and below theupper limit, Modules A, B, and C (or just B and C in some cases) areused to determine tint change. If below the lower limit, a defined tintlevel is applied (e.g., nominally clear). In certain cases, the lowerlimit may be in the range of 5 Watts/m² to 200 Watts/m² and the upperlimit may be in the range of 50 Watts/m² to 400 Watts/m².

FIG. 24A is a flowchart 3600 showing a particular implementation of thecontrol logic shown in FIG. 7 . At step 3610, the control methoddetermines whether the current time is between sunrise and sunset. If itis either before sunrise or after sunset at step 3610, the controlmethod clears the tint in the tintable window and proceeds to step 3920to determine whether there is an override. If it is determined to bebetween sunrise and sunset at step 3610, the control method determineswhether the sun azimuth is between critical angles (step 3620). Althoughcertain control methods are described with respect to a single tintablewindow, it would be understood that these control methods can be used tocontrol one or more tintable windows or a zone of one or more tintablewindows.

FIG. 25B depicts a room having a desk and critical angles of Sun shiningthrough the tintable window in the room. If the sun's azimuth is withinthe critical angles, then the sun's glare is shining on an occupancyregion defined by an occupant sitting at the desk. In FIG. 25B, thesun's azimuth is shown outside the illustrated critical angles.

Returning to the flowchart in FIG. 24A, if it is determined at step 3620that the sun azimuth is outside the critical angles, Module A is notused and Module B is used at step 3800. If it is determined that the sunazimuth is between the critical angles, Module A is used at step 3700and then Module B is used at step 3800. At step 3820, the control methoddetermines whether the sensor value is below a threshold 1 or above athreshold 2. If the sensor value is below threshold 1 or above threshold2, Module C (step 3900) is not used. If the sensor value is abovethreshold 1 and below threshold 2, Module C is used. In either case, thecontrol method proceeds to step 3920 to determine whether there is anoverride in place.

FIG. 24B is a graph of illumination readings from a sensor taken duringa day that is cloudy (e.g., foggy) early in the day and sunny (clearsky) later in the day. As shown, the values of the illumination readingsare below a lower limit before 7 a.m., rise above the lower limit andthen above the upper limit, and then as the clouds burn off after 10a.m. the illumination readings become much higher later in the day.While the sensor reads illumination levels below a lower limit (e.g., 10Watts/m²) before 7 a.m., the amount of radiation through the tintablewindow is not significant enough to affect occupant comfort. In thiscase, a re-evaluation of tint level does not need to be made and adefined tint level (e.g., maximum window transmissivity) is applied.While the sensor reads between the lower and upper limit (e.g., 100Watts/m²) after 7 a.m. and before 10 a.m., modules A, B, and C will beused to calculate an end tint state. While the sensor reads above theupper limit (e.g., 100 Watts/m2) after 10 a.m., modules A and B will beused to calculate an end tint state.

FIG. 25A is a flowchart 4000 of a control method that uses short andlong box car values to make tinting decisions, according to someembodiments. Although the flowchart is shown using one short term boxcar value and one long term box car value, other embodiments may includeone or more box car values such as, for example, a second long term boxcar value. The illustrated control method periodically receives sensorreadings of illumination values and updates the long term and short termbox car values. If a timer is set, then current tint level will bemaintained at the current tint setting. The method evaluates thedifference between the short and long term box car values to determinewhich box car value to use as an illumination value in tintingdecisions. If the difference between the values is greater than athreshold value, then the short term box car value is used and a firsttimer is set during which the current tint setting will be maintained.If the difference between the values is lower than the threshold value,the long term box car value is used and a different timer may be set(depending on the magnitude of the difference). Using the previouslydetermined box car value as the illumination value, the methoddetermines whether the illumination value is below a lower limit and ifso, a pre-defined tint level is applied (e.g., nominally clear). If theillumination value is above an upper limit, the method determineswhether the sun is outside the critical angles.

FIG. 25B depicts a room having a desk and the critical angles of theroom within which glare from the sun is shining in an occupancy regiondefined by an occupant sitting at the desk. In the illustration, the sunis outside the critical angles. If the method determines that the sun isoutside the critical angles, only Module B is used to determine tintlevel. If within the critical angles, Modules A and B are used todetermine tint level. If the illumination value is above the lower limitand below the upper limit, the method determines whether the sun isoutside the critical angles. If outside the critical angles, Modules Band C are used to determine tint level. If within the critical angles,Modules A, B, and C are used to determine tint level.

More specifically with reference back to FIG. 25A, sensor readings ofillumination values (e.g., external radiation readings) are sent by thesensor and received by the processor at step 4010. Generally, the sensortakes samples on a periodic basis at a uniform rate (e.g., one sampletaken every minute). At step 4012, the long term and short term box carillumination values are updated with the received sensor readings. Inother words, the oldest readings in the box car filters are replacedwith the newest readings and new box car illumination values arecalculated, usually as central tendencies of readings in the box cars.

At step 4020, it is determined whether a timer is set. If a timer isset, then the current tint setting is maintained at step 4022 and theprocess returns to step 4010. In other words, the process does notcalculate a new tint level. If a timer is not set, the magnitude andsign of the difference between the short term and long term box carillumination values (A) is determined at step 4030. That is, Δ=ShortTerm Box Car value−Long term Box Car value.

At step 4040, it is determined whether Δ is positive and greater than afirst positive threshold value. If Δ is positive and greater than afirst threshold value, then the illumination value for the system is setto short term box car illumination value and a first timer is set atstep 4042 and the method proceeds to step 4050. If Δ is positive but notgreater than the first positive threshold value, then the illuminationvalue for the system is set to the long term box car illumination valueat step 4044. At step 4046, it is determined whether Δ is more negativethan a second negative threshold value. If Δ is more negative than thesecond negative threshold value, then a second timer is set at 4048, andthe method proceeds to step 4050. If not, the method directly proceedsto step 4050.

At step 4050, it is determined whether the set illumination value forthe system is less than a lower limit. If the set illumination value forthe system is less than the lower limit, a predefined tint level (e.g.,nominally clear) is applied at step 4052 and the process returns to step4010. If the set illumination value for the system is greater than alower limit, it is determined whether the set illumination value for thesystem is greater than an upper limit at step 4060. If it is determinedthat the set illumination value for the system is greater than an upperlimit, then it is determined whether the sun azimuth is outside thecritical angles at 4070. If the sun is not outside the critical angles,Modules A and B are used to determine a final tint level applied to thetintable window and the process returns to step 4010. If the sun isoutside the critical angles, only Module B is used to determine thefinal tint state at step 4074 and the process returns to step 4010. Ifit is determined that the set illumination value for the system is notgreater than an upper limit at step 4060, then it is determined whetherthe sun is outside the critical angles at 4080. If the sun is notoutside the critical angles, Modules A, B, and C are used to determine afinal tint level at step 4082 applied to the tintable window and theprocess returns to step 4010. If the sun is outside the critical angles,only Modules B and C are used to determine the final tint level at step4090 applied to the tintable window and the process returns to step4010.

FIG. 26A depicts two graphs associated with sensor readings during aregular day and the associated tint states determined by the controlmethod described with reference to FIG. 25A. The bottom graph includes abell-shaped curve of clear sky illumination values over time, t, forreference purposes. This particular bell-shaped curve would be anexample of values measured at a south facing window (i.e. because thebell is roughly centered in the dawn to dusk time scale) with criticalangles of 90 (East) to 270 (West). The bottom graph also includes acurve of sensor readings taken over time, t during a day when theweather periodically deviates from clear sky. The sensor readings aretypically measurements of external radiation. The bottom graph alsoincludes curves of updated short box car values and long box car valuescalculated at time, t. These values are usually calculated as centraltendencies of the samples in the box cars updated at time, t. The curveof sensor readings also shows drops in illumination at the passing offour clouds 1, 2, 3, and 4, and then returning to sunshine after each ofthe clouds pass. The short box car curve follows the sensor readingcurve and reacts quickly to the drops in illumination from the fourclouds. The long box car values lag behind the sensor reading drops inillumination and do not react to the same extent as the short box carvalues to these drops in illumination from the clouds. The top graphshows the tint state transmission (T_(vis)) through the tintable windowdetermined by the control method at time, t. Until just before event 0,the positive difference between the short term box car value and thelong term box car value is less than a first (positive) threshold value(e.g., 20 Watts/m²), and the illumination value is set to the updatedlong box car value. Since the illumination value is below the lowerlimit, a defined tint level (nominally clear state) associated with aT_(vis) of 60% is applied. As shown, the control method applies T_(vis)of 60% until the positive difference between the short term box carvalue and the long term box car value is greater than a first positivethreshold value (e.g., 20 Watts/m²), and then the illumination value isset to the short box car value (event 0). At this time, Timer 1 is setand the tint state calculated at event 0 is maintained until Timer 1expires just after cloud 1 passes. Since the illumination value (basedon the short box car value) is greater than the lower limit and lessthan the high limit and the sun is within the critical angles, ModulesA, B, and C are used to determine a tint level at event 0 correspondingto T_(vis) of 20%. Thereafter, the value of the short term box carpasses the upper level, triggering a calculation based on Modules A andB only. However, no change in tint level occurs since Timer 1 is set.Just after the time Cloud 1 passes, Timer 1 expires. From this timeuntil just before cloud 3, the positive difference between the shortterm box car value and the long term box car value is greater than thefirst positive threshold value and the illumination value is set to theupdated short term box car value. During this time, the illuminationvalues (based on the updated short term box car values) remain above theupper limit and the sun remains within the critical angles, and soModules A and B are again used to determine a tint level and theycalculate a tint level corresponding to T_(vis) of 4%. At Cloud 3, thelong box car value is greater than the short box car value and thedifference is now negative and so the illumination value is set to thelong box car value. Since the difference is less negative than thesecond negative threshold value, no timer is set. Since the illuminationvalue is greater than the upper limit and the sun is outside thecritical angles, Modules A and B are again used to determine tint levelto determine a tint level corresponding to T_(vis) of 4%. At Cloud 4,the long box car value is again greater than the short box car value,and the difference is less negative than the negative threshold value.At this time, the illumination value is set to the updated long box carvalue, but no timer is set. Since the illumination value is greater thanthe low limit and less than the high limit and the sun is within thecritical angles, Modules A, B, and C are used to determine a tint leveland they calculate a tint level corresponding to a T_(vis) of 4%.

FIG. 26B depicts two graphs associated with sensor readings during acloudy day with intermittent spikes and the associated tint statesdetermined by the control method described with reference to FIG. 25A.The bottom graph shows sensor readings at time, t, over the cloudy day.The bottom graph also includes a bell-shaped curve of clear skyillumination values over time, t, for reference purposes. The bottomgraph also includes curves of updated short box car values and long boxcar values calculated at time, t. The curve of sensor readings showsthat conditions are cloudy in the morning until point 3 when it becomessunny for a short period with two drops before becoming cloudy again atpoint 4. The top graph shows the tint state transmission T_(vis) throughthe tintable window calculated by the control method at time, t. Beforepoint 1, the positive difference between the short term box car valueand the long term box car value is less than the first positivethreshold value, and the illumination value is set to the long box carvalue. Since the illumination value is below the lower limit, apredefined tint level (e.g. nominally clear) associated with a T_(vis)of 60% is applied. At point 1, the difference between the short term andlong term box car values is positive and less than a first positivethreshold value, and the illumination value is set to the updated longbox car value. In this case, the illumination value is between the lowerand upper limit and it is early in the day so that the sun is outsidethe critical angles so that Module A does not need to be used todetermine glare into the room. In this case, only Modules B and C areused and they calculate the tint level at T_(v) of 40% to darken thewindow. At point 2, the difference between the short term and long termbox car values is positive and less than the first positive thresholdvalue, and the illumination value is set to the updated long box carvalue. At this point, it is still early in the day and the sun isoutside the critical angles. The illumination value is higher than itwas at point 1, but still between the upper and lower limit, and ModulesB and C determine a tint level at T_(vis) of 20% to darken the windowfurther. At point 3, the difference between the short term and long termbox car values is positive and greater than a threshold value, and sothe illumination value is set to the updated short box car value andTimer 1 is set. Since the illumination value is above the upper limitand the sun is within the critical angles, Modules A and B are used todetermine increase the tint to a tint level corresponding to T_(vis) of4%. During the timer's length, the tint state will be maintained. Justbefore point 4, Timer 1 expires. At point 4, the positive differencebetween the short term and long term box car values is greater than afirst positive threshold value, and the illumination value is set to theupdated short box car value. The illumination value is above the upperlimit and the sun is outside the critical angles at this time of day sothat only Module B is used to determine a tint level corresponding toT_(vis) of 40%. At point 5, the positive difference between the shortterm and long term box car values is less than the first thresholdvalue, and the illumination value is set to the updated long box carvalue. No timer is set. At this point late in the day, the illuminationvalue is below the lower limit and the sun is outside the crucial anglesso that Modules B and C are used to determine a tint level correspondingto T_(vis) of 60%.

FIG. 27A is a plot of illumination values including sensor readings,short box car values, and long box car values determined at time, t,during a day. FIG. 27B is a plot of the sensor readings of FIG. 27A andassociated tint level determined by Module B, and tint level determinedby Module C during a day.

In some aspects, the long box car value is updated with sensor readingsand is never reset during the day. If sensor readings were to changesignificantly during the day (e.g., when a storm front arrived), theselong box car values would lag substantially behind the rapid change insensor readings and would not reflect the rapid change. For example, thelong box car values are significantly higher than the sensor readingsafter a substantial drop in external illumination. If these high longbox car values are used to calculate a tint level, the windows may beover-tinted until the long box cars had time to load with more currentsensor readings. In certain aspects, control methods reset the long boxcar after a rapid change in illumination so that the long box car can beloaded with more current sensor readings. FIGS. 28A-B are illustrationsof control methods that reset loading of the long box car. In otheraspects, control methods use a second long box car that is initiatedwith a significant change in illumination condition. FIGS. 29A-B areillustrations of control methods that have a second long box car. Inthese cases, the control methods can use long box car values that arecloser to the current sensor readings and may avoid over tinting thewindows after a rapid drop in illumination.

FIG. 28A is a flowchart 5000 of a control method that resets loading ofa long box car, according to embodiments. The long box car is reset andstarts reloading current sensor readings after a rapid change in sensorreadings. The long box car is reset when the negative difference betweenthe short box car value and long box car value is more negative than asecond negative threshold value. That is, a negative difference that ismore negative than the negative threshold value indicates a rapid changein sensor readings. At the same time, the control method starts a secondtimer. The control method uses the reset long box car value to calculatetint level that will be maintained during the second timer. Since thelong box car starts reloads with new sensor readings when the conditionsrapidly change, the long box car value closely follows sensor readingsfor a time and the control method will determine tint levels thatclosely correspond to the current changing sensor readings after therapid change.

More specifically with reference to FIG. 28A, sensor readings are sentby the sensor and received by the processor at step 5010. At step 5012,the long term and short term box car illumination values are updatedwith more current sensor readings received. If it is determined at step5020 that a timer is set, then the current tint setting is maintained atstep 5022 and the process returns to step 5010. If is determined that atimer is not set at step 5020, then the magnitude and sign of thedifference between the short term and long term box car illuminationvalues (Δ) is determined at step 5030. That is, Δ=Short Term Box Carvalue−Long Term Box Car value. If it is determined at step 5030 that Δis positive and greater than a first positive threshold value, then theillumination value is set to the short term box car illumination value,a first timer is set at step 5042, and the method proceeds to step 5050.If it is determined at step 5030 that Δ is positive and less than thepositive threshold value or is a negative value, then the illuminationvalue is set to the long term box car illumination value at step 5044.At step 5046, it is determined whether Δ is more negative than a secondnegative threshold value. If Δ is more negative than the secondthreshold value, this is an indication of a significant drop inillumination. In this case, a second timer is set and the long box caris reset (emptied of values) at step 5048 to start loading again, andthe method proceeds to step 5050. If Δ is not more negative than thesecond negative threshold value, the method directly proceeds to step5050. At step 5050, it is determined whether the set illumination valueis less than a lower limit. If less than the lower limit, a defined tintlevel (e.g., nominally clear) is applied at step 5052 and the processreturns to step 5010. If the set illumination value for the system isgreater than a lower limit, it is determined whether the setillumination value for the system is greater than an upper limit at step5060. If it is determined that the set illumination value for the systemis greater than an upper limit, then it is determined whether the sunazimuth is outside the critical angles at 5070. If the sun is within thecritical angles, Modules A and B are used to determine a final tintlevel applied to the tintable window and the process returns to step5010. If the sun is outside the critical angles, only Module B is usedto determine the final tint state at step 5074 and the process returnsto step 5010. If it is determined that the set illumination value forthe system is not greater than an upper limit at step 5060, then it isdetermined whether the sun is outside the critical angles at 5080. Ifthe sun is within the critical angles, Modules A, B, and C are used todetermine a final tint level at step 5082 applied to the tintable windowand the process returns to step 5010. If the sun is outside the criticalangles, only Modules B and C are used to determine the final tint levelat step 5090 applied to the tintable window and the process returns tostep 5010.

FIG. 28B illustrates a scenario of sensor readings and box car valuesduring time, t, during a portion of a day. This scenario assumes abright sunny day (500 W/m²) at noon and the box car curves are trackingtogether for the most part at this time, with calculations going onevery 5 minutes. At the first vertical dotted black line (regular 5 mininterval calculations) there has been a slight drop in sensor readingsand the short term box car value is slightly higher than the long termbox car value, which lags behind the sensor readings. Since the negativedifference between the short term and long term values is more negativethan the negative threshold value, the long term box car value is usedto determine tint level. At the very next calculation, the sensorreadings are showing a large drop in external illumination (e.g., stormfront arrived). The negative difference is more negative than thenegative threshold value and the control method triggers a 1 hour timer(changing condition has caused this event, made delta sufficient totrigger the timer) and the long box car is reset. The control methodsets the illumination value to the reset long box car value to determinea tint level to use during the timer period. Since the long term box carvalue is above the upper limit and the sun is within the criticalangles, Modules A and B are used to determine the tint level based onthe reset long box car value. At the end of the second timer period, thenegative difference between short box car and long box car values ismore negative than the negative threshold value so that the illuminationis set to the long term box car value with readings taken since thereset.

At the end of the second timer period, if the logic did not reset thelong box car, the second timer would have been again implemented and thelong box car value would have been used during the time period (asbefore). As you can see, this would have inappropriately over-tinted thewindow since the current sensor readings (and associated short box carvalue) show it is a dull day and the window does not need to be tintedas high as long box car value would seem to indicate. In this scenario,a long term box car is reset at the timer start period. In other words,once the timer is triggered, this simultaneously triggers resetting thelong box car to start loading with new sensor data. Using this resetlogic, at the end of the second timer, the short term box car value iscompared with the reset long box car value and the delta would moreclosely reflect current sensor readings.

FIG. 29A is a flowchart 6000 of a control method that initiates a secondlong box car when there is a rapid change in sensor readings. The valuesof the newly-initiated second long box car closely track the sensorreadings during the rapid change. The first long box car lags behind thesensor readings.

With reference back to FIG. 29A, sensor readings of illumination valuesare sent by the sensor and received by the processor at step 6010. Atstep 6012, box car illumination values are updated with the receivedsensor readings. If it is determined at step 6020 that a timer is set,then the current tint setting is maintained (i.e. no calculation of newtint level) at step 6022 and the process returns to step 6010. If isdetermined that a timer is not set at step 6020, it is determinedwhether a second long box car has been initiated at step 6024. If asecond long box car is determined to be initiated at step 6024, Value 1is set to the greater of the short box car and the first long box carillumination values and Value 2 is set to the second long box carillumination value. If a second long box car has not been initiated,Value 1 is set to the short box car illumination value and Value 2 isset to the second long box car illumination value. At step 6030, themagnitude and sign of the difference between Value 1 and Value 2 (Δ) isdetermined. If it is determined at step 6030 that Δ is positive andgreater than a first positive threshold value, then at step 6042, theillumination value is set to Value 1 and a first timer is set, and thenthe method proceeds to step 6050. If it is determined at step 6030 thatΔ is positive and less than the first positive threshold value or Δ is anegative value, then the illumination value is set to Value 2 at step6044. At step 6046, it is determined whether Δ is more negative than asecond negative threshold value. If Δ is more negative than the secondnegative threshold value, then there has been a significant drop inillumination. In this case, a second timer is set, a second long box caris initiated, and the illumination value is set to the initial value ofthe second long box car at step 6048, and the method proceeds to step6050. If Δ is not more negative than the second threshold value, themethod directly proceeds to step 6050. At step 6050, it is determinedwhether the set illumination value is less than a lower limit. If lessthan the lower limit, a defined tint level (e.g., nominally clear) isapplied at step 6052 and the process returns to step 6010. If the setillumination value for the system is greater than a lower limit, it isdetermined whether the set illumination value for the system is greaterthan an upper limit at step 6060. If it is determined that the setillumination value for the system is greater than an upper limit, thenit is determined whether the sun azimuth is outside the critical anglesat 6070. If the sun is not outside the critical angles, Modules A and Bare used to determine a final tint level applied to the tintable windowand the process returns to step 6010. If the sun is outside the criticalangles, only Module B is used to determine the final tint state at step6074 and the process returns to step 6010. If it is determined that theset illumination value for the system is not greater than an upper limitat step 6060, then it is determined whether the sun is outside thecritical angles at 6080. If the sun is not outside the critical angles,Modules A, B, and C are used to determine a final tint level at step6082 applied to the tintable window and the process returns to step6010. If the sun is outside the critical angles, only Modules B and Care used to determine the final tint level at step 6090 applied to thetintable window and the process returns to step 6010.

FIG. 29B illustrates a scenario of sensor readings and box car valuesduring time, t, during a portion of a day. This scenario assumes abright sunny day (500 W/m²) at noon and the box car curves are trackingtogether for the most part at this time, with calculations going onevery 5 minutes. At the first vertical black line (regular 5 mininterval calculations) there has been a slight drop in sensor readingsand the short term box car value is slightly higher than the first longterm box car value, which lags behind the sensor readings. Since thenegative difference between the short and first long box car values isbelow the threshold value, the first long box car value is used todetermine tint level. At the very next calculation, the sensor readingsare showing a larger drop in external illumination. In this case, thenegative difference is more negative than the negative threshold valueand the control method triggers a 1 hour timer (changing condition hascaused this event, made delta sufficient to trigger the timer) and asecond long box car is initiated. In addition, the illumination value isset to the initial second long box car value. Since this initial secondlong term box car value is above the upper limit and the sun is withinthe critical angles, Modules A and B are used to determine the tintlevel based on the initial second long box car value. At the end of thesecond timer period, the first long box car value is greater than theshort box car value and the positive difference between the second longbox car value and first long box car value is below the first thresholdvalue. The control method uses the first long box car illumination valueto determine a tint level that will be used during the first timer.

In certain embodiments, Module A may increase tint in a window ifcalculated direction of solar radiation through the window is withincritical acceptance angles associated with a glare scenario in anoccupied area of the room with the window. The direction of solarradiation is calculated based on Sun azimuth and/or Sun altitude. FIG.25B, for example, shows critical acceptance angles, Z1 and Z2 associatedwith a desk in a room. In this example, when the sun is located in aposition that provides solar radiation at an azimuth angle within thecritical acceptance angles, Z1 and Z2, solar radiation is generatingglare onto an area occupied by the desk. In response, Module A may senda control signal to increase tint state in the window to provide comfortfrom the glare. Outside the critical acceptance angles, Z1 and Z2, thedirect parallel rays of solar radiation do not impinge on the desk areaand Module A may return a control command of “clear tint state.” Anotherexample of a set of critical acceptance angles, θ₁ and θ₂, associatedwith Sun azimuth is shown in FIG. 20 . In some cases, two sets ofcritical angles associated separately with Sun Azimuth and Sun Altituderespectfully may be used. In these cases, Module A may turn on toincrease tint state if the calculated Sun azimuth is within the firstset of critical angles and the sun altitude is within the second set ofcritical angles.

X1. Module a Based on Three-Dimensional Projection of Light

In certain embodiments, Module A determines whether glare is on anoccupancy area by using a three-dimensional projection of light throughthe room from one or more apertures (e.g., tintable windows). Thethree-dimensional projection of light may be considered to be a volumeof light in a room where the outside light directly penetrates into theroom. For example, the three dimensional projection may be defined byparallel light rays from the sun through a window. The direction of thethree-dimensional projection into the room is based on Sun azimuthand/or Sun altitude. The three-dimensional projection of light can beused to determine two-dimensional light projections (P-images) atintersections of one or more planes in the room. The size and shape of aP-mage from an aperture is based on the dimensions and orientation ofthe aperture and a directional vector of the solar radiation calculatedbased on the sun azimuth and/or Sun altitude. The P-images aredetermined based on the assumption that the sun generates parallel lightrays at an infinite distance away from an aperture. With thisassumption, a horizontally-oriented aperture provides a two-dimensionallight projection onto a horizontal surface with the same shape and sizeas the actual aperture.

In certain cases, Module A determines a P-image at a particular plane ofinterest by calculating a P-image offset. A P-image offset can refer toan offset distance at the particular plane between a geometric center ofthe projected image and a vertical axis at the geometric center of theaperture. The P-image offset can be determined based on dimensions ofthe aperture, the sun azimuth and altitude, and the normal distancebetween the plane of the aperture and the plane of interest. With theP-image offset, Module A can determine a projection image by buildingout the projected aperture area around the P-image offset.

Once Module A determines the light projection at a particular plane,Module A determines the amount that the light projection or a glare areaassociated with the light projection overlaps the occupancy region (i.e.region occupied in the room). An occupancy region can refer to an areaat a plane of interest (e.g., plane at a desk) that defines boundariesin space that when crossed by the three-dimensional light projection orthe glare area infers a glare scenario. In some cases, an occupancyregion may be all or part of a two dimensional surface (e.g., a desktop) or a volume such as a region in front of the occupant's head,possibly including a desktop. If the light projection or glare area isdetermined to be outside of the occupancy region, a glare scenario isdetermined to not exist.

In some cases, Module A may calculate a glare area at the plane ofinterest based on the light projected through one or more apertures. Aglare area can refer to an area at a plane of interest that is impingedupon by the light projected through the one or more apertures. In somecases, Module A defines a glare area as an area between the verticalaxis at the geometric center of an effective aperture and the outerboundaries of the P-image at the plane of interest. In one case, thegeometric center of an aperture can refer to the centroid of the shapeof the aperture or the center of mass. The glare area may be definedhaving different shapes such as, for example, a rectangular, circular,or annular shape, and may be in rectangular or polar coordinates. Afterdetermining the glare area from one or more apertures, Module A may thendetermine that a glare scenario exists if the glare area overlaps withan occupancy region.

In certain cases, Module A determines a tint level based on thecalculated amount of overlap of the light projection or the glare areawith the occupancy region. For example, if the light projection has anyoverlap with the occupancy region, Module A may turn on to increase thetint state to address the glare scenario. If the light projection doesnot overlap with the occupancy region, Module A may return a “clear tintstate” command.

FIG. 30 illustrates a schematic drawing of a side view of a room with asingle horizontal and circular aperture 7010 in the form of a skylightin the ceiling, according to an embodiment. The room has a desk 7030that defines the occupancy region in the room. The circular aperture7010 has a diameter of w_(h). The aperture 7010 is at a Window Azimuthof α₁. The geometric center of the circular aperture 7010 is at thecenter of the circular aperture 7010 at w_(h)/2. A vertical axis 7012 atthe geometric center 7011 of the aperture 7010 is shown. Solar radiationfrom the sun is shown as a three dimensional cylinder of light raysprojected to the floor. The Solar radiation is shown having a Sunaltitude of θ. In this illustration, the light projection (P-image) 7020of the aperture 7010 is determined at the plane of the floor as anapproximation of a projection at the plane of the desk 7030 at dz. Inother examples, aperture 7010 may be projected to other planes such asat the plane at the upper surface of the desk 7030. In certainembodiments of Module A, the P-image offset may be determined byprojecting the geometric center of the aperture 7010 to the plane at thefloor or other plane of interest along a directional vector 7013associated with the sun azimuth and altitude. In some cases, the lightprojection (P-image) 7022 of the aperture 7010 is determined by“building out” the aperture 7010 around the P-image offset. In FIG. 30 ,the P-image 7020 is shown laterally offset at the floor by a distance ofP-image offset from the vertical axis 7012. In this example, Module Adefines the glare area by the outer edges of the projection image 7020at the plane at the floor.

FIG. 31 is a schematic drawing of a side view (top) and a sectional view(bottom) of the room shown in FIG. 30 with the single horizontalcircular aperture 7010 in the form of a skylight, according to anembodiment. In this example, the room has a desk 7031 that defines theoccupancy region and the light projection (P-image) 7022 is determinedat the plane of the desk 7031 at z-position of dz. In this example, theP-image offset is determined by projecting the geometric center of theaperture 7010 along a directional vector 7013 associated with the sunazimuth and altitude to the plane at the desk 7031. The light projection(P-image) 7022 of the aperture 7010 may be determined by “building out”the aperture around the P-image offset. In other cases, a lightprojection can be determined at a plane at the floor, for example, asshown in FIG. 30 . In FIG. 31 , the P-image 7022 is shown laterallyoffset by a distance of a P-image offset from the vertical axis 7012 atthe geometric center of the aperture 7010.

In FIG. 31 , the bottom illustration is a sectional view of the room atz=dz. In this illustration, the occupancy region 7030 has a centroidthat is offset from the vertical axis 7012 by dx and dy at the plane ofinterest at the desk 7031 at z-position of dz. As shown in FIG. 31 , thecalculated glare area partially overlaps the occupancy region 7030defined by the desk 7031 at the plane of interest by an overlapping area7040. When the glare area exceeds the predetermined threshold (bydimension or- and/or the area) Module A may cause a tint change toreduce glare. The occupancy region 7030 has dimensions O_(x)×O_(y) inthe illustration for a rectangular aperture, or may be specified as adiameter for a circle, the facet lengths of a polygon, triangle,trapezoid, or other coordinates appropriate for the aperture. In otherexamples, the occupancy region may include both the area defined by thedesk 7031 and the area 7032 defined by the occupant at the desk 7031. Inother examples, there may be multiple occupancy regions associated withmultiple occupants. The P-image position will change with the time ofday following the directional vector 7013, determined by the azimuth andaltitude of the sun, and will illuminate one or more of the occupancyregions in the course of a day. When the overlap exceeds a predeterminedthreshold Module A will tint the glass to the prescribed value for thatoccupancy region and time of day.

FIG. 32 illustrates a schematic drawing of a side view (top) and asectional view (bottom) of a room having two floors and a horizontalcircular aperture 7060 in the form of a skylight, according to anembodiment. In this example, first floor has a desk 7090 and the secondfloor has a desk 7090. The aperture 7060 has a geometric center 7061.The P-image offset may be determined by projecting the geometric center7061 along a directional vector 7063 associated with the sun azimuth andaltitude to the plane of interest, which in this case is the plane atthe floor of the first floor, for example, as an approximation of aprojection at the plane of the desk at dz. The light projection(P-image) 7070 of the aperture 7060 is determined by building out theaperture at the P-image offset at the plane of interest. The lightprojection (P-image) 7070 of the aperture 7060 is shown provided at theplane of the floor and is shown laterally offset by a distance of aP-image offset from the vertical axis 7062 at the geometric center 7061.In this illustration, the occupancy region 7091 of desk 7090 has acentroid that is offset from the vertical axis 7062 by dx2 and dy2 atthe plane of the desk 7090 and the occupancy region 7081 of desk 7080has a centroid that is offset from the vertical axis 7062 by dx1 and dy1at the plane of the desk 7080. As shown in FIG. 32 , the calculatedglare area of the light projection 7070 partially overlaps the occupancyregion 7081 defined by the desk 7080 at an overlapping area 7095. Asshown, the light projection does not provide glare onto the desk 7090 onthe second floor.

FIG. 33 illustrates a schematic drawing of a side view of a room with adesk 7150, a first aperture 7110, and a second aperture 7112, accordingto an embodiment. The width of the first aperture 7110 is w_(h1) and thewidth of the second aperture 7112 is w_(h2). The first aperture 7110 isat an angle from the horizontal of α₁, which is 135 degrees in thiscase. The two apertures 7110 and 7112 have an effective aperture 7120with a centroid 7121. The first aperture 7110 is at an angle from thehorizontal of α₁. The second aperture 7112 is at an angle from thehorizontal of α₂. The P-image offset may be determined by projecting thegeometric center of the effective aperture 7120 along a directionalvector 7141 associated with the sun azimuth and altitude to the plane atthe floor. The light projection (P-image) 7130 of the effective aperture7120 is provided at the plane of the floor, for example, as anapproximation of a projection at the plane of the desk at dz. TheP-image 7130 is shown laterally offset by a distance of a P-image offsetfrom the vertical axis 7140 at the geometric center of the effectiveaperture 7120. The glare area of the P-image 7130 partially overlaps theoccupancy region defined by the desk 7150.

FIG. 34 illustrates a schematic drawing of a side view of a room with amulti-faceted skylight comprising a first aperture 7210 and a secondaperture 7212, and with a desk 7250, according to an embodiment. Thewidth of the first aperture 7210 is w_(h1) and the width of the secondaperture 7212 is w_(h2). The first aperture 7210 is at an angle from thehorizontal of α₁. The second aperture 7212 is at an angle from thehorizontal of α₂. The two apertures 7210 and 7212 have an effectiveaperture 7220 with a geometric center 7221. The image P-image offset maybe determined by projecting the geometric center of the effectiveaperture 7220 along a directional vector 7241 associated with the sunazimuth and altitude to the plane of interest, which in this case is theplane of the floor, for example, as an approximation of a projection atthe plane of the desk at dz. The light projection (P-image) 7230 of theeffective aperture 7220 is provided at the plane of the floor. TheP-image 7230 is shown laterally offset by a distance of a P-image offsetfrom the vertical axis 7240 at the geometric center of the effectiveaperture 7220. The glare area of the P-image 7230 partially overlaps theoccupancy region defined by the desk 7250.

FIG. 35 illustrates a schematic drawing of a side view of a room with amulti-faceted skylight comprising a first aperture 7310, a secondaperture 7312, and a facet 7314 without an aperture, according to anembodiment. The room also has a desk 7350. The two apertures 7310 and7312 have geometric centers 7341 and 7342 respectively. The width of thefirst aperture 7310 is w_(h1) and the width of the second aperture 7312is w_(h2). The first aperture 7310 is at an angle from the horizontal ofα₁, which is 90 degrees in this case. The second aperture 7212 is at anangle from the horizontal of α₂, which is 270 degrees in this case. Inthis illustration, a light projection (P-image) 7330 of the firstaperture 7310 is provided at the plane of the floor as an approximationof a projection at the plane of the desk at dz. In this case, the facet7314 without the aperture can block light from the first and/or secondaperture 7312 depending on the direction of the solar radiation. Thatis, when the sun altitude θ is less than the angle α₂ of the secondaperture 7321, solar radiation rays do not directly impinge the secondaperture 7321 since the facet 7314 is blocking. In the illustration, thesun altitude θ is less than the angle α₂ so that the second aperture7312 does not receive solar radiation. In this case, the effectiveaperture is only based on the first aperture 7310 and the geometriccenter of the first aperture 7310 is used to determine the P-imageoffset and the projection. The P-image offset may be determined byprojecting the geometric center of the aperture 7310 along a directionalvector 7341 associated with the sun azimuth and altitude to floor. TheP-image 7330 of the first aperture 7312 is shown laterally offset by adistance of a P-image offset from the vertical axis 7340 at thegeometric center of both first aperture 7310 and the second aperture7312. The glare area of the P-image 7330 partially overlaps theoccupancy region defined by the desk 7350.

In some cases, the amount of overlap of the occupancy area with theglare area of the P-image can be used by Module A to determine anappropriate tint state. In these cases, Module A may determine highertint states for higher levels of overlap. In some cases, the tint stateis determined based on the amount of overlap. In other cases, the tintstate is determined based on the percentage of overlap to the amount ofoccupancy area used. FIG. 36 depicts a schematic drawing of a room witha skylight having an aperture 8010 and a desk 8012, according to anembodiment. A vertical axis 8020 is shown through the geometric centerof the aperture 8010. In this illustration, the sun is shown at five Sunaltitudes and the edges of five glare areas are shown corresponding withthe five Sun altitudes associated with five directional vectors. Theschematic drawing also illustrates a method of determining anappropriate tint state for different overlaps. With each increasingglare area overlapping into the occupancy region defined by the desk8010, the tint level increases from T1 to T5.

FIG. 37 is a flowchart showing details of step 700 of FIG. 8 with aModule A that uses a three dimensional light projection, according toembodiments. At step 1905, Module A begins. At step 1910, the windowcontroller 450 uses Module A to calculate the position of the sun forthe latitude and longitude coordinates of the building and the date andtime of day of a particular instant in time, t_(i). The latitude andlongitude coordinates may be input from the configuration file. The dateand time of day may be based on the current time provided by the timer.The sun position is calculated at the particular instant in time, t_(i),which may be in the future in some cases. In other embodiments, theposition of the sun is calculated in another component (e.g., module) ofthe predictive control logic. The sun position is calculated in terms ofSun azimuth and/or Sun altitude.

At step 1920, window controller 450 uses Module A to calculate theamount of glare into a room or whether there is a glare at a particularinstant in time used in step 1910. Module A calculates the amount ofglare using a three-dimensional projection of light rays through theroom from the one or more unblocked apertures (e.g., windows) based on adirection vector determined by the sun azimuth and altitude. Module Adetermines the P-image(s) of the one or more unblocked apertures usingthe directional vector and the configuration information. Theconfiguration information may include one or more of the location of theone or more apertures (e.g. electrochromic windows), the dimensions ofthe one or more apertures, whether the apertures are blocked orunblocked, the orientation of each of the one or more apertures, thedimensions of the room, and any details regarding exterior shading orother structures that may be blocking the solar radiation from enteringthe one or more apertures. The window configuration information is inputfrom the configuration file associated with the electrochromic window505. Module A determines the amount of glare or determination of glarein a room based on an intersection of the P-image of the unblockedapertures with an occupancy region at a particular plane of interest. Insome cases, Module A determines which of the one or more apertures isunblocked i.e., receiving solar radiation. For example, in FIG. 35 , thesecond aperture 7342 oriented at 270 degrees is blocked from receivingthe solar radiation in the illustration. To determine the P-image(s) ofthe unblocked apertures at a particular plane of interest, Module Afirst determines a geometric center of the one or more unblockedapertures. In some cases, the geometric center may be the combinedcentroid of the shapes of the apertures. Module A then determines aP-image offset by projecting the geometric center of the one or moreunblocked apertures in the direction of the directional vector of thethree-dimensional projection of light based on the sun azimuth andaltitude to the plane of interest. The directional vector of thethree-dimensional projection of light is based on the sun azimuth andSun altitude calculated at the particular instant in time in step 1910.Module A determines the P-image offset based on the geometric center ofthe one or more unblocked apertures, the directional vector associatedwith the sun azimuth and altitude, and the normal distance between theone or more apertures and the plane of interest. Module A then “buildsout” a P-image by generating an effective aperture area around theprojected geometric center of the one or more unblocked apertures at theplane of interest. In certain cases, Module A determines the glare areabased on the outer boundaries of the P-image at the plane of interest.Illustrations of glare area determined for different aperturearrangements are shown in FIGS. 31-37 .

At step 1930, a tint level is determined that will provide occupantcomfort from the amount of glare from the P-image(s) of the unblockedapertures determined in step 1920. At step 1930, Module A determines theamount of overlap between the occupancy area and the p-image(s) of theunblocked apertures. Based on the amount of overlap, Module A determinesa desired tint level for the determined amount of overlap in theoccupancy lookup table. The occupancy lookup table is provided as inputfrom the configuration file for the particular aperture. In some cases,the amount of overlapping area or percentage of encroachment (i.e.percentage of overlapping area of the occupancy area) may be used todetermine the end tint state. For example, Module A may not increasetint state if there is a little to no overlapping area (e.g. a smallcorner of a desk). A larger amount or percentage of overlapping area(e.g., more than 50% of a desk) may result in a higher tint state.

FIG. 38 illustrates a schematic drawing of a three dimensionalprojection of light intersecting a portion of a surface with glare,according to embodiments.

Modifications, additions, or omissions may be made to any of theabove-described predictive control logic, other control logic and theirassociated control methods (e.g., logic described with respect to FIG.18 , logic described with respect to FIGS. 7, 8, 9, 12, and 13 , andlogic described with respect to FIG. 14 ) without departing from thescope of the disclosure. Any of the logic described above may includemore, fewer, or other logic components without departing from the scopeof the disclosure. Additionally, the steps of the described logic may beperformed in any suitable order without departing from the scope of thedisclosure.

Also, modifications, additions, or omissions may be made to theabove-described systems (e.g., system described with respect to FIG. 17) or components of a system without departing from the scope of thedisclosure. The components of the system may be integrated or separatedaccording to particular needs. For example, the master networkcontroller 1403 and intermediate network controller 1405 may beintegrated into a single window controller. Moreover, the operations ofthe systems can be performed by more, fewer, or other components.Additionally, operations of the systems may be performed using anysuitable logic comprising software, hardware, other logic, or anysuitable combination of the preceding.

In some implementations, as described above, an approach to Module B isto use a “clear sky” model, which estimates solar irradiance received bya window under a cloudless sky as a function of the solar elevationangle and a site's location and altitude. The entering radiation at awindow is referred to herein as clear sky irradiance. In someimplementations, it can be the role of Module B to tint a window incertain clear sky irradiance conditions even when the sun rays do notdirectly penetrate through the window into the building. For example, inthe afternoon for an east facing window, it may be desirable to employModule B to darken the window because of solar reflections from thestratosphere.

In some embodiments, Module B is implemented to use clear sky modelingsoftware, such as Radiance, to calculate or estimate a solar fluxthrough a window under consideration for any longitude, latitude, andorientation of the window for a specific date and time. Clear skymodeling software may calculate the predicted solar flux that will bereceived by a window by determining the sun's altitude and azimuth at anidentifiable date and time. In some cases, a table or irradiance filecan be generated for use by the intelligence logic, where the tablecontains estimates of solar flux at particular dates and times. In someother implementations, rather than generating a table in advance, aprogram such as Radiance can be used to perform tint decisions in realtime at a given date/time.

While Module B may be used to control the tint state of windows based onthe estimated the solar flux through a window, there are events orsituations where the estimated solar flux may be substantially differentthan the actual solar flux received by a window. These events may causethe window to be controlled in a manner that is not well suited for usercomfort within the building. For example, Module B and otherintelligence modules used may not account an event where an objectexterior to building casts a shadow over a window, or causes additionallight to be reflected towards a window. In some cases, Module B may alsofail to account for changes in weather conditions or user preferences.In variations consistent with the spirit and scope of the presentdisclosure, Module B in some of the above-described implementations andexamples is replaced with, or augmented by, a Module B′ which may makeuse of additional inputs to identify constraints defining such events.Module B′ incorporates an event-based model to replace or work inconjunction with the clear sky model of Module B. The event-based modelof Module B′ identifies an event, and based on the detection oranticipation of an event, provides instructions for one or more affectedwindows to transition to an adjusted tint state. In some cases, an eventmay be temporary, e.g., only lasting for minutes or a few hours, and insome cases, an event may be a predictable reoccurring event. Once anevent is determined to be finished, the governance of tint control maybe returned to the predictive control logic used before the occurrenceof the event.

Non-limiting examples of events that may be modeled or accounted for byModule B′ include reflections and/or shadows caused at least in part bythe surroundings of a building or a feature of the building itself. Forexample, Module B may not account for an adjacent building that shadowsa window during one portion of the day and provides reflected lightduring another. In some cases, an event may be defined at least in partby the time of day or the time of year. For example, when the leaves ondeciduous trees next to a building fall off, an increased solarradiation may be received at one or more windows. In some cases, anevent may be defined at least in part by the preferences of one or moreoccupants of a building. Events will now be further discussed in thecontext of constraints used by Module B′ to determine an event'soccurrence.

A first constraint input that may be considered by Module B′ considersthe sun's position in the sky. As previously discussed, a solar positionor angle may be used by Module A to calculate the depth of directsunlight into a room or Module B to estimate the amount of solarirradiance received at a window. Module B′ may be configured to identifyranges of permissible sun altitude values and/or azimuth valuescorresponding to an event and may override the tinting controls providedby other tinting modules when an event is identified or predicted.

FIGS. 39A-B depict an example of how the solar position may be used as aconstraint to define an event. FIG. 39A provides an aerial top-down viewof a circular interior building 3910 and a concentric exterior building3930, where an annular courtyard area 3920 is located between theinterior and exterior buildings. The exterior building has interiorfacing glass 3932 which may, depending on the position of the sun,result in sunlight reflecting onto the glass of the interior building3912 and cause an increased irradiance to be received by the windows ofthe inner building. If, for example, the buildings are located in thenorthern hemisphere, the intelligence logic might ordinarily leave thewindows of the interior building at a lightly tinted state since nodirect sunlight is expected at these windows—potentially leading todiscomfort and/or glare experienced by occupants of the interiorbuilding. By considering the building geometry, a solar calculator maybe used to a range of azimuth values 3940 that may result in glare.

FIG. 39B provides a partial cross-section view of the concentricinterior and exterior buildings depicted in FIG. 39A. A range of sunaltitude angles 3950 can be determined that causes glare or an increasedirradiance at the interior building by considering the geometry of bothbuildings. This range may be determined by, e.g., creating a ray diagramand identifying both a ray corresponding to a minimum altitude angle3952 and a ray corresponding to a maximum altitude angle 3954. Usingthis example, Module B′ may be configured to output a darkened tintstate when both a constraint defining the sun's azimuth 3940 and thesun's altitude 3950 are satisfied. In some cases, this procedure may bedone for each window of a building, and in some cases, this proceduremay be done for a zone of windows all windows in the zone are controlledcollectively. While a process has been described for determining solarconstraints for an event causing glare, a similar process may be donefor determining solar constraints for an event causing a shadow—e.g.,when one building casts a shadow on the other.

Another constraint that may be considered by Module B′ is the time ofday or the day of the week. In some cases, an event's occurrence maydepend on human activity which may be scheduled and/or reoccurring. Oneexample of a reoccurring event based on human activity is when glare isobserved at a window due to light being reflected from windshields in anadjacent parking lot. For this event to occur, a first requirement orconstraint is that cars must be present in the parking lot. The presenceof parked cars may depend on, e.g., businesses' hours of operationand/or whether it is a weekday, weekend, or holiday. In addition to carsbeing present, a glaring event would also be defined by a particularrange of solar positions where sunlight is reflected off of windshieldstowards a window. Thus, the determination of when to apply a specifictint level to a window can be a function of solar altitude and azimuth,often in addition to being a function of the current date and time.

In some cases, a constraint may be defined seasonally. As previouslymentioned, windows may receive an increased amount of light in the falland winter seasons due to an absence of leaves that would ordinarilyblock sunlight. In another example, windows may receive additionallighting due to light that is reflected off snow. In some cases, ModuleB′ may associate the time of year with a particular event regardless ofwhether the actual event is present. For example, during the wintermonths, a window can be tinted out of an abundance of caution that therewill likely be more reflections on dates and times having a likelihoodof snowfall.

In some cases, Module B′ may use received weather data as a constraintthat defines an event. For example Module B′ may be configured toreceive current and predicted weather information from weather stationsindicating information such as a cloudiness index, a temperature, and/orhumidity information. Based on the received weather information ModuleB′ may determine whether or not a particular event is present. Forexample, a solar position that might normally cause glare for anoccupant of a building on a clear day might produce less glare if it iscloudy or hazy, making a lighter tint state more preferable. As acontrasting example, a solar position that might normally be associatedwith shadowing at a window under clear sky conditions might receive morelight on a cloudy day, making it a darker tint more preferable. Methodsof controlling tint of a tintable windows that are based on receivingweather feed data from one or more weather services (or other datasources) over a communication network are described in PCT PatentApplication No. PCT/US16/41344, titled “CONTROL METHOD FOR TINTABLEWINDOWS,” and filed Jul. 7, 2016 which designates the United States andis herein incorporated in its entirety.

In some embodiments, Module B′ may be configured to receive sensor dataover the window network. For example, an event might be defined in partby temperature information from temperature sensors, occupancyinformation from occupancy sensors, and/or lighting information fromphotosensors. In some embodiments, Module B′ may be configured toreceive information from a building management system (BMS) that thatmay be used to define an event. For example, if an air conditioningsystem malfunctions and/or other constraints (e.g., solar position andweather information) are present to indicate that the interiortemperature may rise above an acceptable temperature, Module B′ mayprovide increased tinting levels to reduce solar heating while the eventpersists.

In some embodiments, an event-based model may consider one or more userpreferences as constraints for an event. User A may wish for events tobe defined differently than User B, who has different lighting needs andmay occupy a room at different times. For example, User A and User B mayhave different workstations or occupancy regions within a room that arenot affected in the same way by an event that causes a change inlighting. In another example, an occupant working on a computer may bemore significantly affected by an event causing glare than a user who isnot using a computer screen. In some implementations, an event-basedmodel for Module B′ is configured to output specific tint levels to inresponse to user-specified conditions, which are independent of anyconsideration of reflections or shadows. For example, a rule can beconfigured to cause tint level 3 to be applied to the window upon theoccurrence of time reaching 10:00 am on Jan. 17, 2017.

In some cases, criteria defining event may be determined during thedesign phase of a window network or the commissioning process. Forexample, window installers may be trained to assess an installation sitefor particular lighting events which may occur. For example, theinstaller may, using measurement tools, identify ranges of solarpositions that would result in unwanted lighting conditions. In somecases, an installer might only be concerned with identifying events notalready compensated for by another lighting module (e.g., Module A, B,or C). For example, an installer may, after identifying a deciduous treeoutside of a window, define a seasonal event where a window is adjustedto darkened tint state during the months when the window is expected toreceive direct sunlight.

In some cases, constraints defining an event can be extrapolated throughmodeling and experimentation using best case and worst case scenariosfor reflections at a site, such as an office building with an adjacentparking lot, which could be full of vehicles having more verticalwindshields, e.g., jeeps or service trucks (worst case) or vehicles withless vertically inclined (more sloped) windshields, e.g., compact sedans(best case) at certain times. By the same token, the disclosedtechniques for implementing Module B′ are not limited to scenariosinvolving reflections and/or shadows.

In some cases, an event may be defined using an application which isalso used to control the tint states of optically switchable windows.For example, when a user in control of a tintable window observes anevent for which an operating predictive control algorithm is notsuitable, the user may define an event using one or more constraintswhich can then be used Module B′ to determine or predict futureoccurrences the event. When identifying an event, the application mayallow the user to select tint levels, or other tinting adjustments, thatwill be applied to windows when the event occurs. For example, a usermight select that the tint state be adjusted to tint state 4, or thatthe tint simply be darkened incrementally by one tint state. As anillustrative example, a user may observe unwanted glare that isreflected off a nearby building between 9:05 am and 9:20 am on April1^(st). Within the application for controlling the window, the user maythen select feature used to define a new event. In one case, the usermay simply indicate that an event occurred between 9:05 am and 9:20 amon April 1^(st), and that a darkened tint should be applied duringsimilar lighting conditions. Upon inputting this information, theapplication may, using a solar calculator, suggest that the event beclassified for a particular range of sun altitude and/or azimuthconstraints corresponding to the period of time indicated by a user. Theapplication may also, in some cases, identify other constraintscorresponding to the time when an event was observed, and suggest thatthe user select or provide additional constraints to define the event.For example, the application may identify a particular user, weatherconditions, or indoor temperature conditions when the observed eventoccurred, and ask the user which, if any constraints are needed todefine an event.

In some cases, an application for controlling or designing a windownetwork may use a 3-dimensional building model to identify constraintsthat define an event. For example, using a 3-dimensional building model,an application may be configured to automatically provide ranges of sunaltitude and/or azimuth values that would be associated with aparticular reflection or shadowing event. In some cases, objects thatmay result in shadowing or reflections may be easily added to a buildingmodel. FIG. 40 depicts a graphical user interface for an applicationwhich may make use of a 3-dimensional building model 4010 to provideranges of sun altitude and/or azimuth values that would result in glareat selected windows 4020 of the building model. A user might easily beable to create a parking lot object 4030 adjacent to a building model4010. In some cases, the object may be imported in the building modelfile from a library of objects. In some cases, a parking lot object mayinclude reflection information including, e.g., common ranges of anglesthat windshields will reflect light. Using dimensional information fromthe building model and reflection information associated with theparking lot object 4030, the application may be configured to outputconstraints 4022 for selected windows 4020 on the building model fromwhich an event may be defined. Additional examples of applications forcontrolling and designing optically switchable windows making use of3-dimensional building models are provided in PCT Patent Application No.PCT/US17/62634, filed Nov. 20, 2017, and titled “AUTOMATED COMMISSIONINGOF CONTROLLERS IN A WINDOW NETWORK” which is herein incorporated byreference in its entirety.

In some implementations, when the sun satisfies altitude and azimuthconstraints at a given date/time, a time-based schedule is set up with arange of irradiations. Thus, when used in conjunction with someimplementations of Module B described above, an irradiation value, suchas 1000 Watts/m², is returned by the database when the altitude andazimuth are satisfied. This irradiation can then be used by Module B todetermine a corresponding tint state. Thus, in the example of FIG. 41 ,tint state column 9016 can be replaced with a column of irradiationvalues stored in association with dates/times and acceptable ranges ofaltitude and azimuth values, where the irradiation values correspond todesired tint states. A first lookup is performed on a database storingthis modified schedule to obtain an irradiation value, and a secondlookup is then performed on a table storing tint states corresponding toirradiation values or ranges of values to obtain a particular tint levelto be applied to the window.

In some implementations of Module B′, when an event is identified ashaving occurred, or a combination of such events has occurred, theevent-based model is configured to compensate for the event(s) byapplying to a window a designated tint state corresponding to theevent(s). For example, a time-based schedule can specify that whencertain criteria satisfy certain constraints associated with sunposition, a user-specified tint state identified in the schedule is tobe applied to a window. In some cases, a schedule may be in the form ofa database or table that can be maintained to specify a tint leveldeemed appropriate for a given event, for instance, when certainconditions of a rule are satisfied.

FIG. 41 is a table representing a time-based schedule 9000 providing sunaltitude and azimuth constraints for determining whether an event hasoccurred to cause a tint level to be applied to a window, according tosome embodiments. In FIG. 41 , desired ranges of solar altitude andazimuth values have been determined for triggering a particular tintlevel to be applied to a window at a given date and time. Schedule 9000is a yearly model in which rows are defined in 6-minute incrementsstarting on January 1st and continuing through the end of December 31stfor a given calendar year, as shown in column 9004. For each row, apermissible range of sun altitude values is identified in constraintscolumn 9008, and a permissible range of sun azimuth values is similarlyidentified in constraints column 9012. A corresponding tint state to beapplied to the window when the detected sun altitude and sun azimuth arewithin the constraints of columns 9008 and 9012 is identified in column9016. In the example of FIG. 41 , each row represents a rule to beapplied to a current sun altitude and/or azimuth at a given date andtime.

By way of illustration, in FIG. 41 , at the date and time identified inrow 18 of column 9004, a minimum azimuth of 80 degrees and a maximumazimuth of 280 degrees define the azimuth constraints in column 9012. Bythe same token, a minimum altitude of 6 degrees and maximum altitude of32 degrees define the altitude constraints in column 9008. Thus, whenthe detected sun azimuth is within the range of 80 to 280, and thedetected sun altitude is within the range of 6 and 32, tint level 3 asidentified in column 9016 is returned for tinting the window. Thecurrent altitude and azimuth of the sun can be detected using acalculator as explained above or can be otherwise monitored. In someimplementations, current altitude and azimuth values are recorded asshown in the two columns immediately to the right of column 9004 of FIG.41 . Returning to row 18 of schedule 9000, at time=1:36 on Jan. 1, 2016,the detected sun altitude is not within 6 and 32 degrees, and themonitored sun azimuth is not within 80 and 280 degrees, so the eventassociated with these constraints has not occurred, and no tint level isreturned from column 9016.

The time-based schedule 9000 of FIG. 41 can be created by determiningand recording desired tint levels for ranges of solar altitude andazimuth for each day of the calendar year at the 6-minute intervals orsome other interval to be specified in column 9004. Various factors cancontribute to these determinations as previously discussed which includebut are not limited to, shadowing and reflection events, selected userpreferences, weather information, and sensor information provided over awindow network.

In some other implementations as described above, a time-based schedulehas a column of irradiation values, rather than tint states,corresponding to specific dates/times. In such implementations, anirradiation value, such as 1000 Watts/m², is returned when a lookup isperformed using a current date/time. A method can then be performed todetermine a tint state for the returned irradiation value. Thus, in someembodiments, a table or database may be used to implement a scheduleusing a framework of rules that are used to identify particular eventsevent. For instance, at 3:00 pm on a workday, a user preferenceimplemented in a row of the table can dictate that the window's tintstate is to be tint level 4, e.g., on a scale of 1-5. In this example,the occurrence of 3:00 pm on a workday is the event driving theevent-based model of Module B′.

In some implementations in which the clear sky model of Module B is usedin conjunction with the event-based model of Module B′, the predictedsolar flux can be overridden by taking account of the surroundings orother event-driven information for the particular date and time. Thus,in some implementations, the solar flux values calculated by Radiancefor a given date and time may be overridden by replacement values linkedwith an identifiable event at that date and time, for instance, when anevent-based rule having specified constraints as described above issatisfied. If no event is identified at a given date/time, the Radiancevalues can be used. In some implementations, annual calculations ofsolar flux values are made before the solar flux values are used todetermine a tint level.

In some implementations, Module B′ may be configured to provide aplurality of tint state levels as outputs depending on whether one ormore constraints are met. As an illustrative example, if only a firstconstraint or a second constraint is satisfied, the module might outputa level 2 tint state, but of both the first and second constraints aresatisfied the module may be configured to output a level 3 tint state.In some cases, Module B′ may be configured to assess the variousconstraints using conventional programming loops involving “if,” “else,”or “while” statements. For example, in some cases, a particular tintlevel may output only if a first constraint satisfied while a particularuser is in control of the optically switchable windows. While theimplementation of constraints defining an event has been described inthe form of a scheduling table, one of skill in the art will appreciatethat there are a plurality of formats in which the constraints may bestored or evaluated within a computer-readable medium.

In some cases, constraints may be evaluated on a weighted scale withpriority being given to certain constraints over others. In some cases,an input value may be used as a weighting factor in determining a finaltint state. As an illustrative example, an event causing glare to beseen through a window may be deemed less severe based on a cloudinessindex. Thus on a clear day while the thing state might be adjusted fromlevel 1 to level 4, on a cloudy day the tint level of the window mightonly be adjusted to a tint state level 3.

In some implementations in which events of the event-based model ofModule B′ relate to reflections and/or shadows, a preliminary processingstage can be performed, that is, before the intelligence logic ofModules A, B′, and C is carried out. In a non-limiting example,reflective physical objects located outside of a building, such as carsparked in parking lots on the front/back/sides of a building can betaken into account to determine ranges of sun altitude and azimuth inwhich a particular tint level is to be applied. In some cases, throughempirical data, sun altitude constraints and sun azimuth constraints canbe derived, where the constraints provide an identifiable range ofvalues in which the sun can possibly reflect off of the cars. In somecases, empirical data may saved within objects associated with a3-dimensional building model which may be used for designing and/orcontrolling a widow network. In some embodiments, using a solarcalculator a yearly schedule may be generated (such as that shown inFIG. 41 which) to be stored in a computer-readable medium and accessedas the intelligence logic is carried out. A database lookup can beperformed on the schedule to determine whether a condition of a rule issatisfied to cause tinting of the window. The schedule can be indexed bydate and time for this purpose. Thus, for example, on December 15^(th)at 2:05 pm, when the sun is within a specified range of altitude andazimuth values, the schedule can dictate that tint level 2 be applied toa given window. The particular tint state to be applied at a givendate/time when the sun satisfies the altitude and azimuth constraintscan be determined by a user through experimentation, in someimplementations. In some other implementations, the tint state isautomatically identified or derived.

FIG. 42 is a flowchart showing details of Module B′ according to someembodiments. In FIG. 42 , the processing begins at 9104. Criteria forindexing a database table such as schedule 9000 of FIG. 41 is retrievedor otherwise received at 9108 of FIG. 42 . For example, the current dateand time can be provided by a timer, system clock or other generallyavailable computing resource. Any of the current date, time, or tintlevel can serve as criteria to index schedule 9000 of FIG. 41 or otherdatabase tables storing similar information. For example, at 9112 ofFIG. 42 , the current date and time are two criteria, which can be usedto perform a database lookup by indexing column 9004 of schedule 9000.When the current date and time match that of row 18 of schedule 9000, byway of illustration, the altitude constraints identified in column 9008for row 18 can be obtained, as can the azimuth constraints of column9012, at 9116 of FIG. 42 .

Thus, at 9120 of FIG. 42 , it can be determined whether the current sunaltitude and azimuth are within the constraints of columns 9008 and 9012of schedule 9000 of FIG. 41 . The current sun altitude and sun azimuthcan be calculated using a sun position calculator as mentioned above.Those skilled in the art should appreciate that, in someimplementations, both the altitude and azimuth constraints are to besatisfied before outputting a tint state identified in column 9016. Insome other implementations, satisfaction of either the sun altitudeconstraints or the sun azimuth constraints causes the corresponding tintstate of column 9016 to be output.

When one or more constraints are satisfied, at 9120 of FIG. 42 , thecorresponding tint state identified in column 9016 is returned as anoutput to be applied to the window, at 9124, before continuing with anyadditional processing at 9128. Returning to 9120, when one or moreconstraints is not satisfied, no tint state is returned or an “error”condition is returned, before additional processing continues asindicated at 9128.

It should be understood that techniques as described above can beimplemented in the form of control logic using computer software in amodular or integrated manner. Based on the disclosure and teachingsprovided herein, a person of ordinary skill in the art will know andappreciate other ways and/or methods to implement the disclosedtechniques using hardware and a combination of hardware and software.

Any of the software components or functions described in thisapplication, may be implemented as software code to be executed by aprocessor using any suitable computer language such as, for example,Java, C++ or Python using, for example, conventional or object-orientedtechniques. The software code may be stored as a series of instructions,or commands on a computer readable medium, such as a random accessmemory (RAM), a read only memory (ROM), a magnetic medium such as ahard-drive or a floppy disk, or an optical medium such as a CD-ROM. Anysuch computer readable medium may reside on or within a singlecomputational apparatus, and may be present on or within differentcomputational apparatuses within a system or network.

Although the foregoing disclosed embodiments have been described in somedetail to facilitate understanding, the described embodiments are to beconsidered illustrative and not limiting. It will be apparent to one ofordinary skill in the art that certain changes and modifications can bepracticed within the scope of the appended claims.

Although the foregoing disclosed embodiments for controlling lightingreceived through a window or a building's interior have been describedin the context of optically switchable windows such as electrochromicwindows, one can appreciate how the methods described herein may beimplemented on appropriate controllers to adjust a position of a windowshade, a window drapery, a window blind, or any other device that may beadjusted to limit or block light from reaching a building's interiorspace. In some cases, methods described herein may be used to controlboth the tint of one or more optically switchable windows and theposition of a window shading device. All such combinations are intendedto fall within the scope of the present disclosure.

One or more features from any embodiment may be combined with one ormore features of any other embodiment without departing from the scopeof the disclosure. Further, modifications, additions, or omissions maybe made to any embodiment without departing from the scope of thedisclosure. The components of any embodiment may be integrated orseparated according to particular needs without departing from the scopeof the disclosure.

What is claimed is:
 1. A method for controlling at least one window of a building, comprising: a. determining a sun position; b. receiving an indication of cloud cover from at least one sensor; and c. controlling a tint of the at least one window based at least in part on (i) the sun position determined, (ii) the indication of cloud cover received, and (iii) one or more ranges of acceptable angles at which electromagnetic radiation enters the building through the at least one window, the one or more ranges of acceptable angles determined based at least in part on geometry of one or more non-fixtures in an occupancy space of the building.
 2. The method of claim 1, wherein the indication of cloud cover is provided by a weather station.
 3. The method of claim 1, wherein determining the sun position includes determining that an obstruction will cause a reduction from a maximum amount of irradiance received at the at least one sensor that comprises a photosensor configured to measure solar irradiance.
 4. The method of claim 3, wherein controlling the tint is performed while the obstruction causes the reduction from the maximum amount of irradiance at the at least one sensor.
 5. The method of claim 1, wherein controlling the tint includes varying a tint level of the at least one window.
 6. The method of claim 1, wherein the at least one sensor comprises a light sensor, an infrared sensor, a temperature sensor, and/or a humidity sensor.
 7. The method of claim 1, further comprising controlling a position of a window shade, a window drapery, or a window blind.
 8. The method of a claim 1, wherein determining the sun position is performed at least in part by using a solar position calculator.
 9. The method of claim 8, wherein the solar position calculator includes a lookup table storing at least one time entry associated with a solar altitude value and/or solar azimuth value.
 10. The method of claim 1, wherein the one or more non-fixtures comprises one or both of a table and a desk.
 11. The method of claim 1, wherein the one or more non-fixtures comprises furniture.
 12. An apparatus for controlling at least one window of a building, comprising: at least one controller that is operatively coupled with at least one sensor configured to generate a reading indicative of cloud coverage, which at least one controller is configured to control, or direct control of, the at least one window based at least in part on (a) a determined sun position, (b) one or more readings of the at least one sensor, which one or more readings are indicative of cloud cover, and (c) one or more ranges of acceptable angles in which electromagnetic radiation enters the building through the at least one window, the one or more ranges of acceptable angles determined based at least in part on geometry of one or more non-fixtures in an occupancy space of the building.
 13. The apparatus of claim 12, wherein the reading indicative of cloud coverage is provided by a weather station.
 14. The apparatus of claim 12, wherein the at least one sensor comprises a photosensor configured to measure solar irradiance.
 15. The apparatus of claim 12, wherein control of the at least one window includes controlling a window tint while an obstruction causes a reduction from a maximum amount of irradiance at the at least one sensor.
 16. The apparatus of claim 15, wherein controlling the window tint includes varying a tint level of the at least one window.
 17. The apparatus of claim 12, wherein the at least one sensor comprises a light sensor, an infrared sensor, a temperature sensor, and/or a humidity sensor.
 18. The apparatus of claim 12, wherein the at least one controller is configured to control a position of a window shade, a window drapery, or a window blind.
 19. The apparatus of claim 12, wherein the determined sun position is determined at least in part by using a solar position calculator.
 20. The apparatus of claim 19, wherein the solar position calculator utilizes a lookup table storing at least one time entry associated with solar altitude value and/or solar azimuth value.
 21. The apparatus of claim 12, wherein the one or more non-fixtures comprises one or both of a table and a desk.
 22. The apparatus of claim 12, wherein the one or more non-fixtures comprises furniture.
 23. The method of claim 1, wherein c. comprises controlling the tint of the at least one window based at least in part on whether the determined sun position is determined to be within a range of angles associated with reflections to the at least one window.
 24. The apparatus of claim 12, wherein the at least one controller is configured to control, or direct control of, the at least one window based at least in part on whether the determined sun position is determined to be within a range of angles associated with reflections to the at least one window.
 25. The method of claim 1, wherein a. comprises computationally determining a current sun position.
 26. The apparatus of claim 12, wherein the sun position is computationally determined and is a current sun position.
 27. The method of claim 1, wherein the one or more ranges of acceptable angles are associated with reflections to the at least one window.
 28. The apparatus of claim 12, wherein the one or more ranges of acceptable angles are associated with reflections to the at least one window.
 29. The apparatus of claim 12, wherein the at least one controller is configured to control, or direct control of, the at least one window based at least in part on whether an obstruction is determined to cause a reduction from a maximum amount of irradiance at the at least one sensor.
 30. The method of claim 1, further comprising using a 3D model of a building site including a representation of the building to determine the one or more ranges of acceptable angles.
 31. The method of claim 1, wherein determining the sun position includes calculating a sun altitude angle and a sun azimuth angle.
 32. The method of claim 31, wherein the sun altitude angle and the sun azimuth angle are calculated based in part on location of the building.
 33. The method of claim 31, wherein c. comprises controlling the tint of the at least one window based at least in part on whether the calculated sun altitude angle are within the one or more ranges of acceptable angles in which electromagnetic radiation enters the building through the at least one window.
 34. The method of claim 31, wherein determining the sun position includes: calculating a maximum amount of irradiance at the at least one sensor using the sun altitude and sun azimuth angle; and reducing the calculated maximum amount of irradiance based on a solar irradiance reading taken by the at least one sensor.
 35. The method of claim 34, wherein controlling the tint includes varying the tint level of the at least one window based on the reduced amount of irradiance.
 36. The method of claim 34, further comprising receiving an indication of obstructions and/or reflections.
 37. The method of claim 36, wherein the indication of obstructions and/or reflections are based in part on readings from the at least one sensor and are indicative of cloud cover.
 38. The method of claim 36, wherein the indication of obstructions and/or reflections are based in part on a 3D model of a building site including a representation of the building. 